Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 103 fois - Téléchargée 365 fois
'A mettre dans un module 'Déclaration des API et des variables 'L'API SetPixelV change la couleur d'un point donné de coordonnées x et y. 'crColor c'est la nouvelle couleur pour cet point. Private Declare Function SetPixelV Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Byte ' L'API GetPixel récupère la couleur d'un point de coordonnées x et y. Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long 'hDC c'est le control qui contient l'image à modifier (de type "Bmp"). Dim x As Integer Dim y As Integer ' fonction qui supprime une couleur d'une image Public Sub SupCouleur(Picture As PictureBox, Couleur_Sup As Long) 'avec ces deux boucles for on parcoure tout les points de l'image For x = 0 To Picture.ScaleWidth For y = 0 To Picture.ScaleHeight ' Ici on récupère la couleur du point de coordonnées x et y couleur_point = GetPixel(Picture.hDC, x, y) ' si c'est la couleur à supprimer alors on modifie ce point If couleur_point = Couleur_Sup Then ' appel du l'API SetPixelV pour modifier le point de coordonnées X et Y avec la 'couleur Blanche SetPixelV Picture.hDC, x, y, vbWhite 'On peut changer la couleur à remplacer par des autres couleur (comme vbred pour 'remplacer le point en rouge ....)(SetPixelV Picture.hDC, x, y, vbred). Aussi vous 'pouvez utilisez des autres méthodes,' par exemple pour supprimer le point: 'SetPixelV Picture.hDC, x, y, (couleur_point - vbred)' mais dans ce cas faut enlever la 'condition if (If couleur_point = Couleur_Sup Then) ;) End If Next y Next x End Sub ' a mettre dans un form Private Sub Command1_Click(Index As Integer) ' vous pouvez ajouter des autres couleurs à supprimer ou à modifier en remplaçant 'le code de la couleur par un autre (ici vbred, vbblack..) ou bien directement le code de la couleur '(ex: SupCouleur Picture1, 255 ' pour supprimer le rouge).Vous pouvez aussi 'utilisez des autres méthodes d'appel de fonction, ici très simple avec select case Select Case Index Case 0 ' Bouton Rouge SupCouleur Picture1, vbRed Case 1 ' Bouton vert SupCouleur Picture1, vbGreen Case 2 ' Bouton Bleue SupCouleur Picture1, vbBlue Case 3 ' Bouton Jaune SupCouleur Picture1, vbYellow Case Else ' Bouton Noir SupCouleur Picture1, vbBlack End Select End Sub '********************** Private Sub Form_Load() ' Charger l'image dans Picturebox Picture1.Picture = LoadPicture(App.Path & "\couleurs.bmp") ' Changer la propriété ScaleMode de l'image en Pixel Picture1.ScaleMode = 3 End Sub
28 nov. 2003 à 13:12
Pour les types des images, généralement les logiciels qui traitent les images ( comme illustrator, adobe photo shop ....) font décompression de l'image chaque chargement, après le compresser de nouveau pour réduire la taille;) , Car, manipuler les images (bmp) c'est beaucoup très efficace et puissance qu'un autre type d'image (comme jpg...) ;)
bon!, Si t'as un code qui peut faire la même chose avec le type jpg (bien sur avec la même qualité ;) et la rapidité de bmp) ça me ferai plaisir de le voir ;)
a++++
28 nov. 2003 à 06:46
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.