Hallo,
ein "simples " Problem: ich stelle in meinem Fenster ein TImage-Objekt dar. Über einen Button lade ich zur Laufzeit eine jpg-Datei. Nun möchte ich, wenn ich über dem Bild klicke die RGB-Werte erhalten. Meine Idee war:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var clr : TColor;
col : LongInt;
begin
clr:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
col:=ColorToRGB(clr);
end;
Allerdings erhalte ich bei geladenem jpg immer nur Wert -1. Ich vermute, dass die Komprimierung mir hier einen Streich spielt, da bei anderen Grafikformaten alles klappt.
Kann mir jemand einen Tipp geben?
Danke.
Roland
ein "simples " Problem: ich stelle in meinem Fenster ein TImage-Objekt dar. Über einen Button lade ich zur Laufzeit eine jpg-Datei. Nun möchte ich, wenn ich über dem Bild klicke die RGB-Werte erhalten. Meine Idee war:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var clr : TColor;
col : LongInt;
begin
clr:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
col:=ColorToRGB(clr);
end;
Allerdings erhalte ich bei geladenem jpg immer nur Wert -1. Ich vermute, dass die Komprimierung mir hier einen Streich spielt, da bei anderen Grafikformaten alles klappt.
Kann mir jemand einen Tipp geben?
Danke.
Roland
Comment