papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Appliquer un filtre (rouge, vert ou bleu) à une image bitmap Mer 23 Nov 2022 - 21:51 | |
| - Code:
-
rem ============================================================================ rem Appliquer un filtre (rouge, vert ou bleu) à une image bitmap rem ============================================================================
dim image$,largeur,hauteur image$ = "c:\users\microtek\desktop\lenna_N&B.bmp" : ' Indiquer ici votre image
Dimensions(image$) : ' récupérer les dimmensions de l'images
width 0, 1000 : height 0,hauteur + 100 picture 10 : width 10,largeur : height 10,hauteur : top 10,50 : left 10,10 file_load 10,image$ picture 20 : width 20,largeur : height 20,hauteur : top 20,50 : left 20,30+largeur picture 30 : width 30,largeur : height 30,hauteur : top 30,50 : left 30,50+2*largeur picture 40 : width 40,largeur : height 40,hauteur : top 40,50 : left 40,70+3*largeur
alpha 50 : top 50,10 : left 50,(largeur-100)/2 : font_bold 50 : font_color 50,0,0,0 font_size 50,14 : caption 50,"Image origine"
alpha 60 : top 60,10 : left 60,largeur + largeur/2 : font_bold 60 font_color 60,255,0,0 : font_size 60,14 : caption 60,"Filtre Rouge" alpha 70 : top 70,10 : left 70,2*largeur+largeur/2 : font_bold 70 font_color 70,0,128,0 : font_size 70,14 : caption 70,"Filtre Vert" alpha 80 : top 80,10 : left 80, 3*largeur+largeur/2 : font_bold 80 font_color 80,0,0,255 : font_size 80,14 : caption 80, "Filtre Bleu"
caption 0,"Appliquer un filtre (rouge, vert ou bleu) à une image ... <ESC> pour terminer"
' ------------------------------------------------------------------------------ ' Appliquer le filtre (rouge, vert ou bleu) de votre choix Appliquer_Filtre(largeur,hauteur,"rouge") Appliquer_Filtre(largeur,hauteur,"vert") Appliquer_Filtre(largeur,hauteur,"bleu") caption 0,"Terminé" end rem ============================================================================ SUB Appliquer_Filtre(w,h,filtre$) dim_local x,y,r,g,b,cr,cg,cb if upper$(filtre$) = "ROUGE" cr = 1.8 : cg = 0.8 : cb = 0.8 : 2d_target_is 20 else if upper$(filtre$) = "VERT" cr = 0.8 : cg = 1.8 : cb = 0.4 : 2d_target_is 30 else if upper$(filtre$) = "BLEU" cr = 0.8 : cg = 0.5 : cb = 2 : 2d_target_is 40 else message "!!! Filtre non valide !!!" : exit_sub end_if end_if end_if for x = 0 to w for y = 0 to h r = color_pixel_red(10,x,y) g = color_pixel_green(10,x,y) b = color_pixel_blue(10,x,y) ' appliquer le filtre r = r*cr : if r > 255 then r = 255 g = g*cg : if g > 255 then g = 255 b = b*cb : if b > 255 then b = 255 2d_pen_color r,g,b : 2d_point x,y : display if scancode = 27 then terminate next y next x END_SUB rem ============================================================================ ' Récupérer les dimensions (largeur et hauteur) de l'image image$ SUB Dimensions(image$) filebin_open_read 999,image$ filebin_position 999,18 largeur = filebin_read(999) + 256 * filebin_read(999) filebin_position 999,22 hauteur = filebin_read(999) + 256 * filebin_read(999) filebin_close 999 END_SUB rem ============================================================================
Voici l'image d'origine. Vous pouvez l'enrégistrer sous lenna_N&B.bmp ou utiliser une autre image de votre choix (ligne 6 du programme) - Et voici le résultat:
EDITCorrection d'un bug signalé par Marc
Dernière édition par papydall le Jeu 24 Nov 2022 - 0:52, édité 1 fois (Raison : Correction d'un bug signalé par Marc.) | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Appliquer un filtre (rouge, vert ou bleu) à une image bitmap Mer 23 Nov 2022 - 23:09 | |
| Bonsoir Papydall ! Merci pour le partage. Le filtre bleu ne fonctionne pas. L'erreur provient de ligne 61 : - Résultat après correction:
| |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Appliquer un filtre (rouge, vert ou bleu) à une image bitmap Jeu 24 Nov 2022 - 0:53 | |
| Merci Marc. C'est corrigé. Si le débogage est l'art de traquer les bugs pour les corriger, la programmation ne seait que l'art d'en créer ! | |
|
Contenu sponsorisé
| Sujet: Re: Appliquer un filtre (rouge, vert ou bleu) à une image bitmap | |
| |
|