Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Pixel colore esadecimale
Forum - Visual Basic 6 - Pixel colore esadecimale

Avatar
Hock (Normal User)
Newbie


Messaggi: 2
Iscritto: 14/03/2009

Segnala al moderatore
Postato alle 21:09
Martedì, 04/08/2009
Ciao! E' possibile capire qual'è il colore in esadecimale di un pixel preciso?

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 21:11
Martedì, 04/08/2009
Testo quotato

Postato originariamente da Hock:

Ciao! E' possibile capire qual'è il colore in esadecimale di un pixel preciso?


Un po' generica la domanda. Intendi un pixel di una picturebox, del form, o di tutto lo schermo?

PM Quote
Avatar
Cesco90 (Ex-Member)
Rookie


Messaggi: 29
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 21:18
Martedì, 04/08/2009
in vb 2005 c'è il metodo getpixel passandogli le coordinate ti dà il colore!

PM Quote
Avatar
Hock (Normal User)
Newbie


Messaggi: 2
Iscritto: 14/03/2009

Segnala al moderatore
Postato alle 21:21
Martedì, 04/08/2009
di tutto lo schermo con vb6

Ultima modifica effettuata da Hock il 04/08/2009 alle 21:21
PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 21:22
Martedì, 04/08/2009
Testo quotato

Postato originariamente da Cesco90:

in vb 2005 c'è il metodo getpixel passandogli le coordinate ti dà il colore!


Appunto, in VB2005. Qui siamo in vb6 :D
E comunque non sarebbe nemmeno fattibile in quel modo se volesse trovare il colore di un pixel sul resto dello schermo. Per questo gli ho chiesto maggiori informazioni :yup:

PM Quote
Avatar
Cesco90 (Ex-Member)
Rookie


Messaggi: 29
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 21:26
Martedì, 04/08/2009

Ultima modifica effettuata da Cesco90 il 04/08/2009 alle 21:26
PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 21:36
Martedì, 04/08/2009
Ah GetPixel di gdi32...pensavo che intendessi Bitmap.GetPixel di vb.net :D

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:05
Martedì, 04/08/2009
Devi usare l'hwnd del desktop (costante 0) ...

Se inserisci una Picture nel form e tieni presente che lo schermo non verrà ridimensionato, puoi dare un'occhiata a questo codice che ho buttato giu' per prova

Codice sorgente - presumibilmente VB.NET

  1. Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
  2. Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
  3. Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
  4. Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
  5.  
  6. Private Const HWND_DESKTOP = 0
  7.  
  8. Private Sub Command1_Click()
  9.     Dim dskHdc As Long
  10.     Dim x As Long
  11.     Dim y As Long
  12.    
  13.     dskHdc = GetDC(HWND_DESKTOP)
  14.    
  15.     Picture1.AutoRedraw = True
  16.     For y = 0 To Picture1.Height / Screen.TwipsPerPixelY
  17.         For x = 0 To Picture1.Width / Screen.TwipsPerPixelX
  18.             SetPixel Picture1.hdc, x, y, GetPixel(dskHdc, x, y)
  19.         Next x
  20.         DoEvents
  21.         Picture1.Refresh
  22.     Next y
  23.    
  24.     ReleaseDC HWND_DESKTOP, dskHdc
  25. End Sub


PM Quote