Pixelfarbe auslesen!
-
Hallo,
ich sitze hier nun 12 stunden ununterbrochen an meinem PC um eine kleinen, billigen programmablauf zu schreiben! Es soll doch einfach nur die farbe eines pixel auf koordinate xy ausgelesen werden... Es ist nun schon fast 1 Uhr nachts, deshalb frage ich nun hier:
Warum zur hölle kann klappt das bei mir mit GetPixel nicht!? Ich hatte jetzt bestimmt so alle fehler die man haben kann (linkfehler etc)
BITTE helft mir!Und ja, ich habe gesucht etc (und zwar 12 stunden lang), und ja, ich weiß dass das hier schon mehrmals besprochen wurde. Der erste, der mir eine kleine, aber funktionierende fuktion schreibt bekommt von mir aus 15€ per paypal.
MfG,
Xer0EDIT: funktion sollte so aussehen: getPixelColor(x-coordinate, y-coodinate) und etwas zurückgeben wie den hexwert der farbe, oder irgend etwas! haupsache man kann es verwerten
-
vorausgesetzt du hast nix dagegen, dass 0/0 oben links ist:
#define getPixelColor(x,y) GetPixel(GetDC(0),(x),(y))
-
Thx schonmal für die schnelle hilfe zur späten stunde, aber da kommt ein fehler der mir sehr vertaut ist. "GetDC undeclared. (First use this function)". Das selbe gillt für GetPixel(). Da muss man doch bestimmt nur irgendwas includen oder?
-
Xer0 schrieb:
Da muss man doch bestimmt nur irgendwas includen oder?
richtich

#include <windows.h>
-
ok, fast alle fehler weg.
leider nur FAST:
[Linker error] undefined reference to `GetPixel@12'
bitte, nur noch den fehler wegmachen
Compiler: Code::Blocks und Dev-C++
-
na, dann noch in den linkereinstellungen: -lgdi32
-
JAAAAAAAA!!!! PARTY!! THXTHXTHX!
keine fehlermeldun mehr.
jo dann gib mal deine paypal-adresse
-
Xer0 schrieb:
jo dann gib mal deine paypal-adresse
geschenkt

geh' mit deiner freundin 'n eis essen dafür...
-
net schrieb:
geh' mit deiner freundin 'n eis essen dafür...
ok mach ich dann
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Muss der DC nicht wieder released werden ?
-
ja Codefinder
Es entsteht sonst ein Speicherleck (Taskmanger->Prozess->Speicherverbrauch)
Folgendes ist besser.HDC hdcscreen=GetDC(0);
TColor c= GetPixel(hdcscreen,(x),(y));
ReleaseDC(0,hdcscreen);
-
steinsoft schrieb:
ja Codefinder
Es entsteht sonst ein Speicherleck (Taskmanger->Prozess->Speicherverbrauch)
Folgendes ist besser.HDC hdcscreen=GetDC(0);
TColor c= GetPixel(hdcscreen,(x),(y));
ReleaseDC(0,hdcscreen);Ach ne, aber umständlicher und TColor gibbets nit...:

inline COLORREF GetPixelColor(int iX, int iY) { COLORREF crExtract; HDC hdcEntireScreen = GetDC(NULL); crExtract = GetPixel(hdcEntireScreen, iX, iY); ReleaseDC(NULL, hdcEntireScreen); return (crExtract); }Mit GetRValue, GetGValue und GetBValue kannst Du dann die einzelnen Farbkomponenten extrahieren.