Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLM'S PICKER : CAPTURER UNE COULEUR LE PLUS SIMPLEMENT DU MONDE


Information sur la source

Catégorie :Graphique Classé sous : couleur, capturer, recuperer, addin, getpixel Niveau : Débutant Date de création : 27/03/2006 Date de mise à jour : 31/03/2006 03:43:13 Vu / téléchargé: 3 460 / 469

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Encore un petit bout de code qui s'avère très pratique lorsqu'on développe en VB et que l'on veut récupérer une couleur.

Collez simplement ce code dans votre Form, ajoutez un timer (intervalle = 200) et testez...

La version du zip permet de copier la couleur dans le clipboard au formart &HXXXXXX en appuyant sur shift. Ensuite, Il n'y a plus qu'à la coller dans le code VB ou la fenêtre des propriétés. Elle donne aussi les composantes RGB (voir capture).

J'ai aussi créé une copie du projet mais sous forme d'AddIn VB6. Ainsi vous pouvez utiliser le programme de deux manières différentes...
 

Source

  • Option Explicit
  • Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
  • Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  • Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
  • Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
  • Private Type POINTAPI
  • X As Long
  • Y As Long
  • End Type
  • Dim Pt As POINTAPI
  • Private Sub Timer1_Timer()
  • Dim lDC As Long
  • On Error Resume Next
  • lDC = GetWindowDC(0)
  • GetCursorPos Pt
  • Me.BackColor = GetPixel(lDC, Pt.X, Pt.Y)
  • ReleaseDC Me.hwnd, lDC
  • Me.Caption = "&H" & Hex(Me.BackColor)
  • End Sub
Option Explicit

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Type POINTAPI
    X As Long
    Y As Long
End Type

Dim Pt As POINTAPI

Private Sub Timer1_Timer()
   
   Dim lDC As Long
   On Error Resume Next
   
   lDC = GetWindowDC(0)
   GetCursorPos Pt
   Me.BackColor = GetPixel(lDC, Pt.X, Pt.Y)
   ReleaseDC Me.hwnd, lDC
   Me.Caption = "&H" & Hex(Me.BackColor)
   
End Sub

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

27 mars 2006 06:39:23 :
Ajout RVB
27 mars 2006 06:47:56 :
...
27 mars 2006 12:43:01 :
Correction d'une petite faute d'orthographe
27 mars 2006 23:44:38 :
Il y avait une déclaration d'API en trop...
27 mars 2006 23:45:52 :
...
29 mars 2006 15:23:34 :
Ajout de la fonction loupe
30 mars 2006 02:27:46 :
Nouveau look, nouvelles fonctions
30 mars 2006 07:12:58 :
Nouvelle interface
30 mars 2006 08:54:07 :
Je crois qu'avec la prochaine mise à jour, je mettrais aussi le projet sous forme d'AddIn VB...
30 mars 2006 11:17:16 :
L'AddIn est créé...
31 mars 2006 03:43:14 :
Amélioration de l'AddIn

Commentaires et avis

signaler à un administrateur
Commentaire de moustachu le 27/03/2006 12:25:30

Bonjour,

C'est bien mais tu devrais corriger le libellé dans ta fenêtre (avant " = Copier vers clipboard"), ça ne le fait pas  ;o)

++

Moustachu

signaler à un administrateur
Commentaire de clementio le 27/03/2006 12:51:35 administrateur CS

ehehehh, merci de me l'avoir signalé...

signaler à un administrateur
Commentaire de Rrominet le 28/03/2006 10:39:19

J'aurais aussi ajouté le code couleur de la fonction RGB() de VB, qui donne un entier long composé comme suit :
RGB = R + (G * 256) + (B * 256 * 256)

Je sais que j'en ai eu besoin dans VB une fois et que j'ai galéré pour trouver ma couleur :-)


Sinon excellente source !! Hyper basique mais hyper utile !

signaler à un administrateur
Commentaire de clementio le 29/03/2006 15:27:12 administrateur CS

C'est vrai mais c'est quand même plus propre dans ton code d'avoir les couleurs formatées en hexa plutôt que la valeur d'un entier long.

Et de toute façon, ta formule est inutile car GetPixel renvoie cette même valeur...;-)

signaler à un administrateur
Commentaire de moustachu le 30/03/2006 16:25:41

Sympa le look en tous cas ! j'ai mis ma source à jour avec le même principe du timer ;o)

++
Moustachu

signaler à un administrateur
Commentaire de clementio le 30/03/2006 18:33:38 administrateur CS

Et moi si j'ai aussi fait un AddIn c'est grâce à ta source!!!

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

GetPixel En gros [ par fuck ] Bonjour et merci de lire ce messageJe cherche (si ya ) une api capable de réccuperer la couleur d'un rectangle : un peu comme L'api getpixel .Sauf que Recuperer une couleur a l'ecran [ par chuckyone ] Comment peut on faire pour recuperer la couleur d un pixel a l ecran sachant qu il n y a pas de form.La fonction GetPixel demande un hdc, comment puis recuperer code hexa entier d'une couleur [ par NaBuCO ] voila mon pb c ke je ve recuperer le code hexa de la couleur que choisi l'utilisateur ds la palette tout va bien qd c a 6 caractere genre FFFFFF (pour Couleur SetPixel différente de couleure GetPixel sous Windows 2000 [ par cushy007 ] Couleur SetPixel différente de couleure GetPixel sous Windows 2000 [ par cushy007 ] Salut, J'ai un problème sous Windows 2000 avec les couleurs des API SetPixel et GetPixel. La couleur que me renvoie GetPixel est différente Problème avec GetPixel [ par MaxSoldier ] Bonjours, dans le cadre de la réalisation d'un jeu, j'ai besoin de la fonction GetPixel. Le problème, c'est que lorsque je veux tracer avec Capturer les évenements SourceSafe en Addin [ par Kev33 ] Salut, je cherche à capturer un evement lié à un controle de source (ici SourceSafe )dans VS2005 via un addin. Un peu de cette mani&#23 Équivalent de getpixel pour directx [ par Razor_rws1 ] Salut, ça fais plusieurs fois que je poses la question mais toujours sans succès. J'aimerais simplement savoir comment connaitre la couleur d'un pixel couleur des bordures [ par BasicInstinct ] 'lutj'utilise les manifest pour developper mon application. J'ai un controle utilisateur au milieu qui ne gere pas le mode XP. Comment puis recuperer comment capturer la couleur d'un pixel de l'ecran avec getdibits [ par solocontact ] je voudrais utiliser getdibits pour retrouver la couleur d'un pixel à l'écran, comme avec la fonction getpixel, mais en beaucoup plus rapide!si vous a


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.