vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
zurück
Rubrik: Grafik und Font · Sonstiges   |   VB-Versionen: VB4, VB5, VB603.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 PrelleBewertung:     [ Jetzt bewerten ]Views:  11.851 
www.visual-basic5.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 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

Dieser Tipp wurde bereits 11.851 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2017 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel