2016-12-01 77 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; 
相關問題