Page 1 sur 2

Flou sur image

Publié : sam. 26/janv./2008 13:28
par Le Soldat Inconnu
Salut,

Quelqu'un m'a demandé une mise a jour de ce code pour faire du flou sur une image :

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Ajouter un effet de flou à l'image

#img = 0
#Barre = 1

; on charge l'image
UseJPEGImageDecoder()
Fichier.s = OpenFileRequester("Ouvrir une image", "", "Image|*.bmp;*.jpg", 1)
If LoadImage(#img, Fichier) = 0
  End
EndIf

; récupère la dimension de l'image
ImageX = ImageWidth(#img)
ImageY = ImageHeight(#img)

If OpenWindow(0, 0, 0, ImageX, ImageY + 20, "Flou", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  If CreateGadgetList(WindowID(0))
    ImageGadget(#img, 0, 0, ImageX, ImageY, ImageID(#img))
    ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
  EndIf
  
  ; On récupère l'image
  Dim Pixel.l(ImageX, ImageY)
  StartDrawing(ImageOutput(#img))
    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()
    
    Select Event
      Case #PB_Event_Gadget ; si on clique sur le bouton gauche de la souris
        Select EventGadget()
          Case #img
            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 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, ImageID(#img))
            
            ; on augmente le niveau de flou
            Niveau + 1
        EndSelect
        
        
    EndSelect
  Until Event = #WM_CLOSE ; on clique sur la croix, fin du prog
  
EndIf
Sauf que j'ai un peu de retard, ca fait bien longtemps que je ne suis pas venu.

Enfin, cette version est quand même très très basique, il y a moyen d'améliorer grandement
Elle ne fait du flou que par zone de pixel (carré 3*3 puis 5*5, etc..), on doit pour voir faire un traitement plus homogene

Je regarde, ca va me distraire :roll:

++

Publié : sam. 26/janv./2008 15:48
par Kwai chang caine
Wahhhhhhh !!!!!

LE SOLDAT

J'en reviens pas mes petits yeux 8O
J'ai bien fait de ne pas aller faire la sieste :D

Tu ne me connais peut etre pas, je suis arrivé quand tu es parti.
J'ai été tres triste de ne pas relire tes jolis codes dans ce forum depuis pas mal d'années :cry:

Et j'espere etre le premier à avoir l'honneur de te parler et te souhaiter la bienvenue à nouveau sur ce forum.

Je n'en reviens pas de revoir ton joli AVATAR roder dans les couloirs de ce forum.
J'ai voulu à mainte reprise t'ecrire en MP ou sur ton joli site pour te demander ce que tu devenais, mais j'ai pas osé :oops:
Faut dire que j'aurais été un peu gonflé car toi et moi on ne s'est peut etre jamais parlé.
Et bah maintenant c'est chose faite, bienvenue chez TOI !!!!
On t'a gardé de la soupe chaude avec des croutons :D
Et une bonne couverture.

J'suis sincerement super content de te relire :D
J'espere que plus jamais tu partiras aussi longtemps

Donc si tu n'a pas suivi mes péripéties sur ce forum depuis que tu es parti, je suis le bouffon du site, et plus particulierement celui du grand FLYPE, je me suis intronisé ce titre car personne n'en voulais :D
Et moi, ça me va, etant donné que je suis super nul en programmation et pourtant j'en fait tous les jours depuis l'age de 16 ans :D
D'ailleur mon roi, y'a un bout de temps que je lui ai pas parlé :cry:
Je commence à m'inquieter, il me manque aussi :cry:

C'est toujours les meilleurs qui partent, ils parrait d'apres un proverbe, c'est pour ça que je reste :D

Ce forum est pas bien grand alors quand un pilier comme toi, FLYPE ou certains autres s'en va, ça fait un grand vide :cry:
Et le bouffon, il a beau gesticuler et causer, un peu trop comme le dit mon ami CHRIS, et DRI, ça résonne un max dans les couloirs :cry:
Heureusement le professeur DOBRO est toujours la qui veille d'un oeil paternel sur nous :wink:

J'essais d'apprendre tous les jours, et j'ai la chance d'avoir les meilleurs professeurs du monde sur ce site et celui US.
Mais la-bas, ils parlent pas le meme français que nous, et je comprend pas tout, alors j'ai du mal à me faire des copains :D

J'avais perdu un grand professeur en ta personne, j'espere que tu seras avec les copains, bien sur, à nouveau là pour aider les taches comme moi, et aussi les meilleurs que moi, of course (C'est du français de la-bas :D)

A bientot
Je te souhaite une excelente journée

Un admirateur 8)

Publié : sam. 26/janv./2008 16:13
par Chris
Salut Regis. Ca faisait longtemps qu'on t'avais pas vu dans le coin.

Tu connais pas KCC?

Nan nan.... C'est pas un nouveau langage informatique, c'est un moulin à paroles. Le genre que si tu lui demandes l'heure pour règler ta montre, le temps qu'il réponde, tu as largement le temps d'aller acheter un portable pour interroger l'horloge parlante. :mrgreen:

Mais il est sympa. Bavard, mais sympa...

C'est KCC, quoi! :roll:

Publié : sam. 26/janv./2008 16:18
par Kwai chang caine
Tu connais pas KCC?
Nan nan.... C'est pas un nouveau langage informatique, c'est un moulin à paroles. Le genre que si tu lui demandes l'heure pour règler ta montre, le temps qu'il réponde, tu as largement le temps d'aller acheter un portable pour interroger l'horloge parlante.
Mais il est sympa. Bavard, mais sympa...
C'est KCC, quoi!
Alors la, je ne connaissais pas ta corde sentimentale :D
Je ne savais pas que tu pouvais déssérer les dents :lol:

Je te remercie beaucoup de ton compliment qui me touche beaucoup surtout venant de quelqu'un de valeur comme toi 8)
Et j'espere etre le premier à avoir l'honneur de te parler et te
souhaiter la bienvenue à nouveau sur ce forum.
J'suis dégouté, le soldat il est apparu en premier sur l'autre POST :?

Bon bah, tans pis j'serais le 5e, mais le rang n'a pas d'importance.
L'important c'est que le soldat, il est revenu......

Publié : sam. 26/janv./2008 16:21
par Backup
Kwai chang caine a écrit : On t'a gardé de la soupe chaude avec des croutons :D
Tu pensai a Chris et a Denis ?? :lol: :lol:

Publié : sam. 26/janv./2008 16:25
par Kwai chang caine
Non non, je me serais pas permis, car je crois que je commence à prendre de la bouteille moi aussi.

C'est pas comme toi, t'as le meme age que moi, mais t'es jeune :D

D'ailleur l'age il est dans la tete, et mon chef m'a dit que j'avais encore pas passé la puberté dans ma tete.

De la à ce que je créé la "FAT TONIQ" y'a qu'un pas :lol:

Publié : sam. 26/janv./2008 16:25
par Anonyme2
Dobro a écrit :
Kwai chang caine a écrit : On t'a gardé de la soupe chaude avec des croutons :D
Tu pensai a Chris et a Denis ?? :lol: :lol:
Tu penses bien sur à la soupe ! :D

Publié : sam. 26/janv./2008 16:47
par Backup
Denis a écrit :
Dobro a écrit :
Kwai chang caine a écrit : On t'a gardé de la soupe chaude avec des croutons :D
Tu pensai a Chris et a Denis ?? :lol: :lol:
Tu penses bien sur à la soupe ! :D
il m'avait semblé avoir mis en Gras avec des croutons pourtant :lol: :lol: :lol: :lol: :lol:

Publié : sam. 26/janv./2008 16:59
par Kwai chang caine
il m'avait semblé avoir mis en Gras avec des croutons pourtant
Oui mais je comprend la perplexité de DENIS, car en fait les croutons c'est toujours GRAS.
Donc le doute pouvait subsister :lol:

Publié : sam. 26/janv./2008 17:46
par Backup
pffffff ! je vais me faire un sandwich tien :)

Publié : sam. 26/janv./2008 18:05
par bernard13
COUCOU REGISSSSSSSSSSSSSSSSSS

Publié : sam. 26/janv./2008 18:32
par Kwai chang caine
pffffff ! je vais me faire un sandwich tien
Bah oui, parce que la soupe chaude elle est pour le soldat qui est revenu du front.
Et si les croutons y veulent sauter dedans libre a eux :lol: :lol:

Publié : sam. 26/janv./2008 19:32
par Jacobus
Purée!! c'est les guignols de l'info ici ....

Publié : sam. 26/janv./2008 20:28
par Kwai chang caine
Purée!! c'est les guignols de l'info ici ....
Y'a de l'ambiance, y'a de l'ambiance, ça fait plaisir :lol:

Flllllrooooouuuu !!Flllllrooooouuuu !! y manque plus que les cotillons et les langues de belles mere :D
Image

Publié : sam. 26/janv./2008 22:15
par Le Soldat Inconnu
Comme vous êtes tous gentils

Flatter encore un peu et je reste :lol:

Je suis toujours à droite à gauche avec le boulot, la détente, pas évident de trouver le temps de passer sur le forum, mais je vais faire un effort.