Page 1 sur 2
Effet sur des images
Publié : jeu. 29/janv./2004 9:52
par Le Soldat Inconnu
Salut,
j'attaque un gros message pour donner qlq effet que l'on peut réaliser sur des images tel que du flou, du contraste, etc...
Chaque code marche avec un image nommé "Effet.jpg" qui va falloir placer avec le code (sinon, le choix de l'image est au début du code). éviter d'en prendre une trop grande car le temps de calul augmente vite.
Pour voir apparaître l'effet sur l'image, il faut cliquer dessus. et pour augmenter l'effet, il faut recliquer et etc...
voilà donc je commence à balancer les codes
Publié : jeu. 29/janv./2004 9:52
par Le Soldat Inconnu
Ajout de couleur
Code : Tout sélectionner
#img = 0
#Barre = 1
; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "Effet.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth()
ImageY = ImageHeight()
; Couleur d'ajout
Couleur_Ajout = RGB(20, 255, 20)
If OpenWindow(0, 0, 0, ImageX, ImageY + 20, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Ajout de couleur")
If CreateGadgetList(WindowID())
ImageGadget(#img, 0, 0, ImageX, ImageY, UseImage(#img))
ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
EndIf
; On récupère l'image
Dim Pixel.l(ImageX, ImageY)
UseImage(#img)
StartDrawing(ImageOutput())
For Px = 0 To ImageX
For Py = 0 To ImageY
Pixel(Px, Py) = Point(Px, Py)
Next
; on fait progresser la barre
SetGadgetState(#Barre, Px)
Next
StopDrawing()
; On initialise le niveau de flou
Niveau.f = 0.1
Repeat
Event = WaitWindowEvent()
If Event = #WM_LButtonDown ; si on clique sur le bouton gauche de la souris
UseImage(#img)
StartDrawing(ImageOutput()) ; on dessine sur l'image
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y
Couleur = Pixel(x, y)
Rouge.f = Red(couleur)
Vert.f = Green(couleur)
Bleu.f = Blue(couleur)
; On ajoute la nouvelle couleur
Rouge = Rouge + Niveau * Red(Couleur_Ajout)
Vert = Vert + Niveau * Green(Couleur_Ajout)
Bleu = Bleu + Niveau * Blue(Couleur_Ajout)
; On recalcule la nouvelle couleur
Couleur = RGB(Int(Rouge / (Niveau + 1)), Int(Vert / (Niveau + 1)), Int(Bleu / (Niveau + 1)))
; si la taille du nouveau pixel est positive
Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
; on se déplace sur l'image en y de la taille d'un pixel
y = y + 1
Until y >= ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en x de la taille d'un pixel
x = x + 1
; on fait progresser la barre
SetGadgetState(#Barre, x)
Until x >= ImageX ; si on a traité toutes les lignes de l'image
StopDrawing()
; on réaffiche l'image
SetGadgetState(#img, UseImage(#img))
; on augmente le niveau de flou
Niveau + 0.1
EndIf
Until Event = #WM_close ; on clique sur la croix, fin du prog
EndIf
Publié : jeu. 29/janv./2004 9:53
par Le Soldat Inconnu
Effet de contraste
Code : Tout sélectionner
#img = 0
#Barre = 1
; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "Effet.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth()
ImageY = ImageHeight()
; Couleur d'ajout
Couleur_Ajout = RGB(20, 255, 20)
If OpenWindow(0, 0, 0, ImageX, ImageY + 20, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Contraste")
If CreateGadgetList(WindowID())
ImageGadget(#img, 0, 0, ImageX, ImageY, UseImage(#img))
ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
EndIf
; On récupère l'image
Dim Pixel.l(ImageX, ImageY)
UseImage(#img)
StartDrawing(ImageOutput())
For Px = 0 To ImageX
For Py = 0 To ImageY
Pixel(Px, Py) = Point(Px, Py)
Next
; on fait progresser la barre
SetGadgetState(#Barre, Px)
Next
StopDrawing()
; On initialise le niveau de contraste
Niveau.f = 0.1
Repeat
Event = WaitWindowEvent()
If Event = #WM_LButtonDown ; si on clique sur le bouton gauche de la souris
UseImage(#img)
StartDrawing(ImageOutput()) ; on dessine sur l'image
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y
Couleur = Pixel(x, y)
Rouge.f = Red(couleur)
Vert.f = Green(couleur)
Bleu.f = Blue(couleur)
; On augmente le contraste
Rouge = Rouge * (Niveau * Rouge / 255 + 1 - Niveau / 2)
If Rouge > 255 : Rouge = 255 : EndIf
Vert = Vert * (Niveau * Vert / 255 + 1 - Niveau / 2)
If Vert > 255 : Vert = 255 : EndIf
Bleu = Bleu * (Niveau * Bleu / 255 + 1 - Niveau / 2)
If Bleu > 255 : Bleu = 255 : EndIf
; On recalcule la nouvelle couleur
Couleur = RGB(Rouge, Vert, Bleu)
; si la taille du nouveau pixel est positive
Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
; on se déplace sur l'image en y de la taille d'un pixel
y = y + 1
Until y >= ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en x de la taille d'un pixel
x = x + 1
; on fait progresser la barre
SetGadgetState(#Barre, x)
Until x >= ImageX ; si on a traité toutes les lignes de l'image
StopDrawing()
; on réaffiche l'image
SetGadgetState(#img, UseImage(#img))
; on augmente le niveau de contraste
Niveau + 0.1
EndIf
Until Event = #WM_close ; on clique sur la croix, fin du prog
EndIf
Publié : jeu. 29/janv./2004 9:53
par Le Soldat Inconnu
Effet de flou
Code : Tout sélectionner
#img = 0
#Barre = 1
; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "Effet.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth()
ImageY = ImageHeight()
If OpenWindow(0, 0, 0, ImageX, ImageY + 20, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Flou")
If CreateGadgetList(WindowID())
ImageGadget(#img, 0, 0, ImageX, ImageY, UseImage(#img))
ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
EndIf
; On récupère l'image
Dim Pixel.l(ImageX, ImageY)
UseImage(#img)
StartDrawing(ImageOutput())
For Px = 0 To ImageX
For Py = 0 To ImageY
Pixel(Px, Py) = Point(Px, Py)
Next
; on fait progresser la barre
SetGadgetState(#Barre, Px)
Next
StopDrawing()
; On initialise le niveau de flou
Niveau = 1
Repeat
Event = WaitWindowEvent()
If Event = #WM_LButtonDown ; si on clique sur le bouton gauche de la souris
UseImage(#img)
StartDrawing(ImageOutput()) ; on dessine sur l'image
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y et alentour
Rouge = 0
Vert = 0
Bleu = 0
NbPixel = 0
For Px = -Niveau To Niveau
For Py = -Niveau To Niveau
If Px + x >= 0 And Px + x < ImageX
If Py + y >= 0 And Py + y < ImageY
; on fait le mélange des couleurs entre le point en x,y et ceux qui sont à sont alentour
Couleur = Pixel(Px + x, Py + y)
Rouge = Rouge + Red(couleur)
Vert = Vert + Green(couleur)
Bleu = Bleu + Blue(couleur)
NbPixel + 1
EndIf
EndIf
Next
Next
; On recalcule la nouvelle couleur
Couleur = RGB(Rouge / NbPixel, Vert / NbPixel, Bleu / NbPixel)
; si la taille du nouveau pixel est positive
Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
; on se déplace sur l'image en y de la taille d'un pixel
y = y + 1
Until y >= ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en x de la taille d'un pixel
x = x + 1
; on fait progresser la barre
SetGadgetState(#Barre, x)
Until x >= ImageX ; si on a traité toutes les lignes de l'image
StopDrawing()
; on réaffiche l'image
SetGadgetState(#img, UseImage(#img))
; on augmente le niveau de flou
Niveau + 1
EndIf
Until Event = #WM_close ; on clique sur la croix, fin du prog
EndIf
Publié : jeu. 29/janv./2004 9:54
par Le Soldat Inconnu
Effet de luminosité
Code : Tout sélectionner
#img = 0
#Barre = 1
; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "Effet.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth()
ImageY = ImageHeight()
; Couleur d'ajout
Couleur_Ajout = RGB(20, 255, 20)
If OpenWindow(0, 0, 0, ImageX, ImageY + 20, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Luminosité")
If CreateGadgetList(WindowID())
ImageGadget(#img, 0, 0, ImageX, ImageY, UseImage(#img))
ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
EndIf
; On récupère l'image
Dim Pixel.l(ImageX, ImageY)
UseImage(#img)
StartDrawing(ImageOutput())
For Px = 0 To ImageX
For Py = 0 To ImageY
Pixel(Px, Py) = Point(Px, Py)
Next
; on fait progresser la barre
SetGadgetState(#Barre, Px)
Next
StopDrawing()
; On initialise le niveau de luminosité
Niveau.f = 0.1
Repeat
Event = WaitWindowEvent()
If Event = #WM_LButtonDown ; si on clique sur le bouton gauche de la souris
UseImage(#img)
StartDrawing(ImageOutput()) ; on dessine sur l'image
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y
Couleur = Pixel(x, y)
Rouge.f = Red(couleur)
Vert.f = Green(couleur)
Bleu.f = Blue(couleur)
; On augmente la luminosité
Rouge = Rouge * (Niveau + 1)
If Rouge > 255 : Rouge = 255 : EndIf
Vert = Vert * (Niveau + 1)
If Vert > 255 : Vert = 255 : EndIf
Bleu = Bleu * (Niveau + 1)
If Bleu > 255 : Bleu = 255 : EndIf
; On recalcule la nouvelle couleur
Couleur = RGB(Rouge, Vert, Bleu)
; si la taille du nouveau pixel est positive
Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
; on se déplace sur l'image en y de la taille d'un pixel
y = y + 1
Until y >= ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en x de la taille d'un pixel
x = x + 1
; on fait progresser la barre
SetGadgetState(#Barre, x)
Until x >= ImageX ; si on a traité toutes les lignes de l'image
StopDrawing()
; on réaffiche l'image
SetGadgetState(#img, UseImage(#img))
; on augmente le niveau de luminosité
Niveau + 0.1
EndIf
Until Event = #WM_close ; on clique sur la croix, fin du prog
EndIf
Publié : jeu. 29/janv./2004 9:54
par Le Soldat Inconnu
Effet de négatif
Code : Tout sélectionner
#img = 0
#Barre = 1
; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "Effet.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth()
ImageY = ImageHeight()
; Couleur d'ajout
Couleur_Ajout = RGB(20, 255, 20)
If OpenWindow(0, 0, 0, ImageX, ImageY + 20, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Négatif")
If CreateGadgetList(WindowID())
ImageGadget(#img, 0, 0, ImageX, ImageY, UseImage(#img))
ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
EndIf
; On récupère l'image
Dim Pixel.l(ImageX, ImageY)
UseImage(#img)
StartDrawing(ImageOutput())
For Px = 0 To ImageX
For Py = 0 To ImageY
Pixel(Px, Py) = Point(Px, Py)
Next
; on fait progresser la barre
SetGadgetState(#Barre, Px)
Next
StopDrawing()
Repeat
Event = WaitWindowEvent()
If Event = #WM_LButtonDown ; si on clique sur le bouton gauche de la souris
UseImage(#img)
StartDrawing(ImageOutput()) ; on dessine sur l'image
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y
Couleur = Pixel(x, y)
Rouge.f = Red(couleur)
Vert.f = Green(couleur)
Bleu.f = Blue(couleur)
; On augmente met en négatif
Rouge = 255 - Rouge
Vert = 255 - Vert
Bleu = 255 - Bleu
; On recalcule la nouvelle couleur
Couleur = RGB(Rouge, Vert, Bleu)
; si la taille du nouveau pixel est positive
Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
; on se déplace sur l'image en y de la taille d'un pixel
y = y + 1
Until y >= ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en x de la taille d'un pixel
x = x + 1
; on fait progresser la barre
SetGadgetState(#Barre, x)
Until x >= ImageX ; si on a traité toutes les lignes de l'image
StopDrawing()
; on réaffiche l'image
SetGadgetState(#img, UseImage(#img))
EndIf
Until Event = #WM_close ; on clique sur la croix, fin du prog
EndIf
Publié : jeu. 29/janv./2004 9:55
par Le Soldat Inconnu
Effet de noir et blanc
Code : Tout sélectionner
#img = 0
#Barre = 1
; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "Effet.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth()
ImageY = ImageHeight()
; Couleur d'ajout
Couleur_Ajout = RGB(20, 255, 20)
If OpenWindow(0, 0, 0, ImageX, ImageY + 20, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Noir et blanc")
If CreateGadgetList(WindowID())
ImageGadget(#img, 0, 0, ImageX, ImageY, UseImage(#img))
ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
EndIf
; On récupère l'image
Dim Pixel.l(ImageX, ImageY)
UseImage(#img)
StartDrawing(ImageOutput())
For Px = 0 To ImageX
For Py = 0 To ImageY
Pixel(Px, Py) = Point(Px, Py)
Next
; on fait progresser la barre
SetGadgetState(#Barre, Px)
Next
StopDrawing()
Repeat
Event = WaitWindowEvent()
If Event = #WM_LButtonDown ; si on clique sur le bouton gauche de la souris
UseImage(#img)
StartDrawing(ImageOutput()) ; on dessine sur l'image
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y
Couleur = Pixel(x, y)
Rouge = Red(couleur)
Vert = Green(couleur)
Bleu = Blue(couleur)
; On recalcule la nouvelle couleur en transformant en noir et blanc
Couleur = (Rouge + Vert + Bleu) / 3
Couleur = RGB(Couleur, Couleur, Couleur)
; si la taille du nouveau pixel est positive
Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
; on se déplace sur l'image en y de la taille d'un pixel
y = y + 1
Until y >= ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en x de la taille d'un pixel
x = x + 1
; on fait progresser la barre
SetGadgetState(#Barre, x)
Until x >= ImageX ; si on a traité toutes les lignes de l'image
StopDrawing()
; on réaffiche l'image
SetGadgetState(#img, UseImage(#img))
; on augmente le niveau de flou
Niveau + 0.1
EndIf
Until Event = #WM_close ; on clique sur la croix, fin du prog
EndIf
Publié : jeu. 29/janv./2004 9:56
par Le Soldat Inconnu
Effet de pixelisation
c'est le dernier pour l'instant mais rien ne vous empêche d'en codé d'autre
Code : Tout sélectionner
; on charge l'image
UseJPEGImageDecoder()
LoadImage(0, "Effet.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth()
ImageY = ImageHeight()
If OpenWindow(0, 0, 0, ImageX, ImageY, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Pixellisation")
; on commence le dessin
StartDrawing(WindowOutput())
; affichage de l'image
DrawImage(UseImage(0), 0, 0)
; niveau de pixellisation mis à 1 (pas de pixellisation)
niveau = 1
Repeat
Event = WaitWindowEvent()
If Event = #WM_LButtonDown ; si on clique sur le bouton gauche de la souris
; on multiplie par 2 le niveau de pixellisation pour faire des pixels de 2 fois la taille normale
; en fait, niveau représente la taille des pixels avec laquelle on va pixelliser l'image
niveau = niveau * 2
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y
Couleur = Point(x, y)
; on met la taille en x nouveau pixel égale au niveau de pixellisation
TailleX = Niveau
; si la taille du nouveau pixel fait que l'on sort de l'image, on réduit la taille en x du nouveau pixel
If x + Niveau > ImageX
TailleX = ImageX - x
EndIf
; de même que pour x qui est au dessus
TailleY = Niveau
If y + Niveau > ImageY
TailleY = ImageY - y
EndIf
; si la taille du nouveau pixel est positive
If TailleX > 0 And TailleY > 0
Box(x, y, TailleX, TailleY, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
EndIf
; on se déplace sur l'image en y de la taille d'un pixel (la taille du pixel est représenté par niveau)
; on avance de pixel en pixel (en fait, tous les 2 pixel par rapport à l'image affiché car le pixel intermédiaire sera recouvert par le nouveau pixel qui est 2 fois pus gros
; pour chaque pixel, on récupère la couleur
; puis on afiche le nouveau pixel 2 plus gros que celui affiché
y = y + niveau
Until y > ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en y de la taille d'un pixel
x = x + niveau
Until x > ImageX ; si on a traité toutes les lignes de l'image
EndIf
Until Event = #WM_close ; on clique sur la croix, fin du prog
StopDrawing()
EndIf
Publié : dim. 02/déc./2007 15:52
par Fortix
Salutation, aurais tu une version du code pour la Saturation en PB V4 bien sûr (quoique sinon je ferais la reconversion!!),,
Note: augmenter ou Diminuer sans pour autant modifier la luminositée
Merci soldat

Re: Effet sur des images
Publié : sam. 09/juil./2011 10:15
par blendman
Encore une fois, merci beaucoup pour ces codes qui me seront super utile pour mon logiciel 2D animatoon

.
Je me suis permis d'essayer de réaliser un système de saturation/désaturation.
Je ne sais pas ce qu'il vaut, mais je poste l'exemple (dérivé du code du LSI, bien sûr)
Code : Tout sélectionner
;{ infos
; Code d'origine Le Soldat Inconnu (effet noir et blanc)
; modifié par Blendman 07/2011
; PB 4.60
;}
;{ enumeration - constantes
#img = 0 ; image et image gadget
#Barre = 1
#track= 2
;}
;{ initialisation et images
; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "1.jpg")
; récupère la dimension de l'image
ImageX = ImageWidth(#img)
ImageY = ImageHeight(#img)
If imageX<310
screenX = 310
Else
screenX = ImageX
EndIf
;}
;{ variables, globales
Global clic.b
; On initialise le niveau de contraste
Niveau.f = 1
niveauplus.f = 0.1
sature = 1
;}
;{ macros
Macro couleurz()
If bleu >255 : bleu = 255 : ElseIf bleu <0 : bleu = 0 : EndIf
If rouge >255 : rouge = 255 : ElseIf rouge <0 : rouge = 0 : EndIf
If vert >255 : vert = 255 : ElseIf vert <0 : vert = 0 : EndIf
EndMacro
;}
;{ open window et gadgets
If OpenWindow(0, 0, 0, screenX, ImageY + 60,"saturation/désaturation", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
;ajout des gadgets
ImageGadget(#img, 0, 0, ImageX, ImageY, ImageID(#img))
ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
TrackBarGadget(#track, 3, imageY+30, screenX-5 ,20, 0,200)
SetGadgetState(#track,100)
; On récupère l'image
Dim Pixel.l(ImageX, ImageY)
StartDrawing(ImageOutput(#img))
For Px = 0 To ImageX-1
For Py = 0 To ImageY-1
Pixel(Px, Py) = Point(Px, Py)
Next
; on fait progresser la barre
SetGadgetState(#Barre, Px)
Next
StopDrawing()
;}
;{ boucle principale
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 2
Niveau = (GetGadgetState(#track)/100)
If niveau >1
niveau+niveau*0.1
sature = 1
ElseIf niveau<1 And niveau >=0
sature = -1
EndIf
StartDrawing(ImageOutput(#img)) ; on dessine sur l'image
x = 0 ; on se place en x=0 sur l'image
Repeat
y = 0 ; on se place en y=0 sur l'image
Repeat
; on récupère la couleur du point en x et y
Couleur = Pixel(x, y)
Rouge = Red(couleur)
Vert = Green(couleur)
Bleu = Blue(couleur)
; On recalcule la nouvelle couleur en saturant ou en désaturant
rouge1 =rouge
vert1=vert
bleu1=bleu
couleur1 = (rouge1+ vert1+ bleu1)/3
rouge1 = Red(couleur1)
vert1 = Red(couleur1)
bleu1 = Red(couleur1)
Rouge = Rouge1 * (1-niveau) + Rouge * (niveau)
Vert = Vert1 * (1-niveau) + Vert * (niveau)
Bleu = Bleu1 * (1-niveau) + Bleu * (niveau)
couleurz()
If sature = -1
If niveau <=1 And niveau >0
Couleur = RGB(rouge,vert,bleu)
EndIf
ElseIf sature = 1
Couleur = RGB(rouge,vert,bleu)
EndIf
If sature = -1 And niveau <=0
Couleur = Pixel(x, y)
Rouge = Red(couleur)
Vert = Green(couleur)
Bleu = Blue(couleur)
Couleur = (Rouge + Vert + Bleu) /3
Couleur = RGB(Couleur, Couleur, Couleur)
EndIf
; si la taille du nouveau pixel est positive
Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
; on se déplace sur l'image en y de la taille d'un pixel
y = y + 1
Until y >= ImageY ; si on a finit la colonne de l'image placé en x
; on se déplace sur l'image en x de la taille d'un pixel
x = x + 1
; on fait progresser la barre
SetGadgetState(#Barre, x)
Until x >= ImageX ; si on a traité toutes les lignes de l'image
StopDrawing()
; on réaffiche l'image
SetGadgetState(#img, ImageID(#img))
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow ; on clique sur la croix, fin du prog
EndIf
;}
Je vais essayer de réaliser le réglage des niveaux maintenant

.
Encore merci LSI pour tous ces excellents codes !
Re: Effet sur des images
Publié : sam. 09/juil./2011 20:14
par Fortix
pas mal
Note: pitié pensez à la propreté du code svp

Re: Effet sur des images
Publié : dim. 10/juil./2011 8:38
par blendman
J'ai modifié le code pour le rendre plus lisibles (en enlevant les debug que j'avais oublié et en créant des "groupes" (enumerations, variables, etc..).
Re: Effet sur des images
Publié : dim. 10/juil./2011 15:23
par Fortix
Re: Effet sur des images
Publié : lun. 11/juil./2011 11:04
par Ar-S
Merci beaucoup pour ce partage LSi, la classe.
Re: Effet sur des images
Publié : lun. 11/juil./2011 12:29
par blendman
Ar-S a écrit :Merci beaucoup pour ce partage LSi, la classe.
oui, c'est bien classe.
En plus, avec très peu de changement ces codes continuent de fonctionner 7 ans plus tard, ce qui est pas mal aussi, je trouve

.