"Tronquer le vide" d'un PNG en fonction de son canal alpha
Pym Corp
Messages postés166Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention18 novembre 2007
-
9 mai 2007 à 15:59
NHenry
Messages postés15118Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention11 mai 2024
-
10 mai 2007 à 13:36
Bonjour tout le monde =)
Je viens chercher de l'aide de la part de personnes compétentes pour mon problème qui n'est je pense, pas solvable facilement..
En fait je cherche à enlever la partie "vide" d'un PNG avec un canal alpha, c'est assez dur à expliquer, regardez les images ci-dessous pour comprendre (les carrés blancs et gris représente la transparence) :
Voilà un exemple d'image de départ :
Voilà ce que je veux obtenir (la sélection bleuté c'est juste pour montrer ce que je veux conserver dans l'image, là où il n'y a pas de zones mortes en gros)
Un spécialiste du traitement de l'image en VB 2005 par ici ?
NHenry
Messages postés15118Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention11 mai 2024159 10 mai 2007 à 13:36
Bonjour
Je te conseillerais de faire de la sorte :
Dim lImg1 As bitmap 'Image Source
Dim lUp As New point(0,0) lD
Dim lDown As New point(limg1.size)
Dim lImg2 As bitmap 'Image de destination
For X As Integer=0 To limg1.size.width-1
For Y As Integer=0 To limg1.size.height-1
If lImg1.GetPixel(x,y).a<>0 Then
If lup.x>x Then lup.x=x
If lUp.y>y Then lUp.y=y
If lDown.x<x Then lDown.x=x
If lDown.y<y thenown.y=y
End If
Next
Next
lImg2=New bitmap(New size (lDown.x-lUp.x+1,lDown.y-lUp.y+1))' nouveau bitmap de la taille réduite
For X As Integer=lUp.x To lDown.x
For Y As Integer=lUp.y To lDown.y
limg2.setpixel(x-lup.x,y-lup.y,limg1.getpixel(x,y))
Next
Next