hallo,
ich habe ein programm programmiert, was von dem desktop einen screenshot macht und dann per
color := bitmap.Canvas.Pixels[x,y];
die farbe bestimmen.
dann bestimme ich mit dieser (aus der delphipraxis geklauten) function die
rgb werte:
Delphi-Quellcode:
TColor2RGB(color,r,g,b);
procedure TColor2RGB(
const Color: TColor;
var R, G, B: Byte);
begin
// convert hexa-decimal values to RGB
R := Color
and $FF;
G := (Color
shr 8)
and $FF;
B := (Color
shr 16)
and $FF;
end;
nun habe ich meine r g b - werte, das problem von meinem programm ist, dass es irgendwie abschmiert (ich denke es liegt an dem screenshot machen). egal, interessiert mich nciht mehr, ich habe jetzt den farbwert eines pixels auf dem desktop mit dieser (auch geklauten) funktion bekommen.
Delphi-Quellcode:
function GetPixel(Pos: TPoint): TColor;
var
DC: HDC;
Handle: HWND;
begin
Handle:=WindowFromPoint(Pos);
DC:=GetDC(
Handle);
result:=Windows.GetPixel(
DC, Pos.X, Pos.Y);
ReleaseDC(
Handle,
DC);
end;
das problem dabei ist, dass ich einen blau-ton habe und wenn ich die von getpixel zurückgelieferte farbe aufspalten in die 3
rgb-werte kommt sowas raus wie: R=0; G=0; B=234;
das kann aber nicht sein, weil psp8 mir z.b. über diesen pixel aussagt, das er R=29; G=144; B=189 hat. ich kapier das nicht
könnt ihr mir bitte helfen?
vielen dank!
korn117