Récupération de la couleur d'un pixel dans un bitmap ET SANS FORM- Pb avec l'uti

sebcoz Messages postés 5 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 16 novembre 2010 - 12 nov. 2010 à 19:25
sebcoz Messages postés 5 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 16 novembre 2010 - 16 nov. 2010 à 08:49
Bonjour à tous,

Je suis en cours de développement d'un petit programme pour rogner automatiquement des images en éliminant les zones de blanc des contours. Sur la partie rognage tout est ok. Par contre, je tente désespérément de mettre au point une function permettant de tester la couleur des pixels d'un fichier .jpg pour délimiter la zone à rogner à gauche de l'image, et ce, en utilisant les API createdc, getpixel et deletepc?. Et c'est là que les problèmes commencent.

Tout semble bien fonctionner sauf que les résultats des couleurs retournées ne sont pas celle de mon image. Je pense que le problème vient de createdc que je n'arrive pas à paramétrer !

Si quelqu'un peut m?éclairer ce serait super !!!

Vous trouverez ci-dessus le début de code en question (soyez indulgents):

Private Function LimiteGaucheARogner()
'renvoie le nombre de pixel à gauche d'une image à rogner

On Error GoTo erreur

Dim MyPicture, MyhDC, MyOldjpg, MyPictureHautPix, MyPictureLargPix, PixColor, Posx, PosY, x, y

Set MyPicture = LoadPicture("C:\image.jpg")

MyhDC = CreateDC("", "", "", ByVal 0&)
MyOldjpg = SelectObject(MyhDC, MyPicture.Handle)

MyPictureHautPix = Int(MyPicture.Height / 15) 'Nb de pixels en hauteur
MyPictureLargPix = Int(MyPicture.Width / 15) 'Nb de pixels en largeur

PosY = 0
Posx = 0
For x = 1 To MyPictureLargPix Step 10 ' boucle des x (largeur)

For y = 1 To MyPictureHautPix Step 20 'boucle des y (hauteur)
PixColor = GetPixel(MyhDC, x, y)

If PixColor > -1 And (y < PosY Or PosY = 0) Then
PosY = y
Posx = x
Debug.Print Hex(PixColor) & " x:" & PosY & " y:" & Posx
End If
Next y
Next x


SelectObject MyhDC, MyOldjpg
DeleteDC MyhDC
A voir également:

2 réponses

mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
13 nov. 2010 à 10:34
Apparemment ton code est en VB6.
Tu devrais je pense pouvoir obtenir le résultat attendu en chargeant ton image dans une Form non visible.
La fonction FormInvisibe.Point(x,y) te reverra alors la valeur de couleur du pixel.
0
sebcoz Messages postés 5 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 16 novembre 2010
16 nov. 2010 à 08:49
Merci de ta réponse...
En faite j'ai résolu mon problème en utilisant l'API CreatecomptableDC.

Bonne journée.
0
Rejoignez-nous