Flou sur image

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Flou sur image

Message 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:

++
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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......
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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:
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

pffffff ! je vais me faire un sandwich tien :)
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

COUCOU REGISSSSSSSSSSSSSSSSSS
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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:
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Purée!! c'est les guignols de l'info ici ....
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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.
Répondre