2016-12-01 68 views
0

我在VCL中做了类似的事情。我绝不是一个专业的,我不希望这是做到这一点的最好办法,但在这里我有什么:如何在Firemonkey中单击鼠标位置时识别像素的颜色?

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

我基本上有效地移植该代码寻找一些帮助到firemonkey,得到相同的结果,考虑到图像/画布等似乎有点不同,我很不熟悉它。

在此先感谢。

回答

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;