Rubrik: Grafik und Font · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 03.01.01 |
RGB Farben des Screens ermitteln Sie kennen das vielleicht aus PaintShopPro oder anderen Bildbearbeitungs- und Grafikprogrammen. Bewegt man den Mauszeiger über das Bild, so bekommen... | ||
Autor: Heinz Prelle | Bewertung: | Views: 15.617 |
www.visual-basic5.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Sie kennen das vielleicht aus PaintShopPro oder anderen Bildbearbeitungs- und Grafikprogrammen. Bewegt man den Mauszeiger über das Bild, so bekommen Sie immer den aktuellen Farbwert des Bildpunktes angezeigt, auf welchen der Mauszeiger gerade zeigt.
Die nachfolgende Routine läßt sich dazu verwenden, die RGB-Farbwerte des Desktops zu ermitteln.
' Beispiel : RGB Farben des Screens ermitteln... ' Verwendung : Zur Farbbestimmung von HTML Farbwerten Private Declare Function GetCursorPos Lib "user32" ( _ 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 GetWindowDC Lib "user32" ( _ ByVal hwnd As Long) As Long Private Type POINTAPI x As Long y As Long End Type ' Hier wird der Farbwert des Pixels unterhalb ' der aktuellen Mauszeigerposition ermittelt Public Function GetColorFromCursorPos() As Long Dim m_POSITION As POINTAPI Dim lngFarbe As Long Dim lngDC As Long lngDC = GetWindowDC(0) Call GetCursorPos(m_POSITION) lngFarbe = GetPixel(lngDC, m_POSITION.x, m_POSITION.y) GetColorFromCursorPos=lngFarbe End Function ' Umwandlung des Long-Farbwertes in den ' Rot-/Gelb- und Blauanteil Public Sub GetRGBFromLong(lngFarbe As Long, _ Rot As String, Gelb As String, Blau As String) Dim strTemp As String strTemp = Right$("000000" & Hex(lngFarbe), 6) Rot = Right$(strTemp, 2) Gelb = Mid$(strTemp, 3, 2) Blau = Left$(strTemp, 2) End Sub
Beispielsaufruf:
Dim lngColor As Long Dim Rot, Gelb, Blau As String lngColor = GetColorFromCursorPos() GetRGBFromLong lngColor, Rot, Gelb, Blau Debug.Print "Rotanteil: " & Rot Debug.Print "Gelbanteil: " & Gelb Debug.Print "Blauanteil: " & Blau