如何识别 Firemonkey 中鼠标点击位置的像素颜色?

How do I identify the colour of a pixel at the location of a mouse click in Firemonkey?

我在VCL中做过类似的事情。我绝不是专业人士,我不认为这是最好的方法,但这就是我所拥有的:

pt := TImage(Sender).ScreenToClient(Mouse.CursorPos);
color := image1.Canvas.Pixels[pt.X, pt.Y];

我基本上是在寻求一些帮助,以有效地将此代码移植到 firemonkey 中,以获得相同的结果,考虑到 images/canvases 等似乎工作方式略有不同,而且我对它很不熟悉。

提前致谢。

我猜你需要这样的东西:

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;