我在VCL做过类似的事情。我绝不是专业人士,我不认为这是最好的方式,但这就是我所拥有的:
pt := TImage(Sender).ScreenToClient(Mouse.CursorPos);
color := image1.Canvas.Pixels[pt.X, pt.Y];
我基本上寻求一些帮助,有效地将此代码移植到firemonkey中,以获得相同的结果,考虑到图像/画布等似乎有点不同,我对此非常不熟悉。
提前致谢。
答案 0 :(得分:0)
我猜你需要这样的东西:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
var
Cl: TAlphaColor;
Dt: TBitmapData;
begin
if Image1.Bitmap.Map(TMapAccess.maRead, Dt) then
begin
Cl:= Dt.GetPixel(Trunc(X), Trunc(Y));
Image1.Bitmap.Unmap(Dt);
end;
end;