Hallo an Alle,
ich versuche gerade aus einem Bild die Pixelfarbe auszulesen. Wenn ich Getpixel schreibe und dann Klammer auf, verlangt VBA als erstes ein hdc Wert von mir. Da ich nicht genau weiß was das sein soll, habe ich nach etwas ähnlichem gesucht und .Picture.hPal eingegeben. Jetzt wird mit immer -1 ausgegeben. Kann mir bitte jemand helfen wie ich den Farbwert auslese? Genauso verhält es sich mit SetPixel. Auf einer Seite im Internet steht hdc Legt den Gerätekontext (Device-Kontext) fest, z.B. Picture.hDC.
Kann man bitte jemand erläutern wie ich diese beiden Funktionen korrekt ansteuere?
Declare PtrSafe Function GetPixel Lib "gdi32" ( _
ByVal hdc As LongPtr, _
ByVal x As Long, _
ByVal y As Long) As Long
Declare PtrSafe Function SetPixel Lib "gdi32" ( _
ByVal hdc As LongPtr, _
ByVal x As Long, _
ByVal y As Long, _
ByVal crColor As Long) As Long
Private Sub Test()
Dim I, J As Long
Dim Pixelfarbe
With UserForm1.Image1
.PictureSizeMode = fmPictureSizeModeStretch
' Invertiert eine Grafik
For I = 0 To .Width
For J = 0 To .Height
Pixelfarbe = GetPixel(.Picture.hPal, I, J)
'Setpixel(15, i ,j)
Next J
Next I
End With
End Sub
Vielen Dank und viele Grüße
Frank