Pixel auslesen - welche lib?
-
Hallo,
ich habe dieses Programm gefunden:
#include <windows.h> int main() { HWND hWnd = GetDesktopWindow(); HDC hdc = GetWindowDC( hWnd ); int x = 5; int y = 5; COLORREF cr = GetPixel( hdc, x, y ); ReleaseDC( hWnd, hdc ); return 0; }Mein Problem ist jetzt, dass ich nicht weiß, wie ich es kompilieren kann. Ich benutze den MinGW und der gibt mir eine Fehlermeldung aus.
Ich habe im Internet gesucht und erfahren, dass ich wohl eine lib-Datei einbinden muss. Nur welche ist das?Mit freundlichen Grüßen
DerRatloseEDIT:
Hat sich erledigt. Mit -lgdi32 funktioniert es.
Aber ich habe jetzt eine andere Frage:printf("r: %i, g: %i, b: %i\n", GetRValue(cr0128), GetGValue(cr), GetBValue(cr));Hiermit kann ich mir die Farbwerte ausgeben lassen, aber warum funktioniert es nicht, wenn ich es so versuche:
cout << GetRValue( cr ) << endl << GetGValue( cr ) << endl << GetBValue( cr ) << endl;
-
Versuch mal statt Get<R/G/B>Value static_cast<int>(Get<R/G/B>Value).
Es kann sein, dass cout das Ergebnis als BYTE oder char interpretiert und ein Zeichen ausgibt.
Was gibt er eigentlich aus?
-
Als Ergebnis bekomme ich das hier:
v É ┘Wie man sieht, wird das dritte Zeichen nicht ordentlich angezeigt. Es sieht allerdings wie ein spiegelverkertes L aus, bei dem beide Linien gleichlang sind. Es hängt oben an der Zeile.
-
Das kann überhaupt nicht sein, wenn du es so machst wie Blaze vorgeschlagen hat können nur Zahlen rauskommen.
-
Entschuldigung. War unklar ausgedrückt.
Das was ich gepostet habe, ist die Ausgabe, die man bekommt, wenn man Get<R/G/B>Value direkt ausgibt, ohne static_cast<int>.Mit freundlichen Grüßen
DerRatlose