Pixel RGB color under cursor
Come possiamo recuperare il valore RGB del pixel che si trova sotto il cursore del mouse?
Nell'esempio seguente sfrutteremo tre API di Windows e poche riche di codice.
Apriamo un nuovo progetto VB6 con un form ed un controllo timer in esso e copiamo il seguente codice. Una volta avviato nella caption del titolo della form verranno riportati i valori RGB del pixel sotto il puntatore del mouse, in qualsiasi parte dello schermo esso si trovi.
Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Timer1_Timer()
Dim bCheck As Boolean
Dim lpPoint As POINTAPI
Dim lPixelColor As Long
Dim sTmp As String, myRed As String, myGreen As String, myBlue As String
bCheck = GetCursorPos(lpPoint)
If bCheck Then
lPixelColor = GetPixel(GetDC(0), lpPoint.X, lpPoint.Y) 'GetDC(0) returns screen DC
sTmp = Right$("000000" & Hex(lPixelColor), 6)
myRed = Val("&H" & Right$(sTmp, 2))
myGreen = Val("&H" & Mid$(sTmp, 3, 2))
myBlue = Val("&H" & Left$(sTmp, 2))
Me.Caption = lPixelColor & " Red: " & myRed & " Green: " & myGreen & " Blue:" & myBlue
End If
End Sub
venerdì, 05 gen 2007 Ore. 17.36