我对XE10 Firemonkey中的多设备编程非常陌生,并想知道是否有人可以帮我解决从位图读取像素颜色的问题。
我想要做的是从Timage控件中的位图中采样颜色(就像吸管颜色采样器的工作方式)。我在TRectangle控件中显示光标下的颜色。
这是我在图片上的onmousemove事件中的代码
procedure TMountboardForm.imagemountboardMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Single);
var
vBitMapData : TBitmapData;
ASelectionColor : TAlphaColor;
begin
if imagemountboard.bitmap.Map (TMapAccess.maread, vBitMapData) then
begin
try
ASelectionColor := vBitmapData.GetPixel (round(X), round(Y));
finally
imagemountboard.bitmap.Unmap(vBitMapData);
end;
rectangle1.Fill.Color := ASelectionColor;
end;
end;
这种“排序”有效,但X& Y坐标似乎是错误的。它从光标的某个方向拾取颜色,而不是光标本身下的颜色
有人可以告诉我哪里出错了吗?