Einzelnen Beitrag anzeigen

KoRn117

Registriert seit: 24. Sep 2003
Ort: Hessen
50 Beiträge
 
Delphi 7 Enterprise
 
#1

rgb farbinformationen vom desktop bekommen

  Alt 9. Mai 2004, 21:09
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
  Mit Zitat antworten Zitat