关于Firemonkey,我该如何组合图像?
问题描述:
如何在Delphi XE 10.1与FMX上做到这一点?
我正试图在大图像上的所需位置插入一个小图像。 https://forums.embarcadero.com/thread.jspa?messageID=867027 我试过在这个问题中使用一个例子。 在第一个DrawBitmap示例中 如果将Rect坐标值设置为适合所需的坐标值,则小图像将被截断。 第二个示例没有在FMX TCanvas中调用Draw的方法。 我想获得帮助。谢谢。
答
的DrawBitmap方法绘制由SrcRect参数描述成由DstRect参数描述的画布区域缩放的位图区域。所以你必须使用错误的区域矩形。试试这个(它从画布的左侧和顶部8个像素绘制50%的比例位图):
var
Bitmap: TBitmap;
SrcRect: TRectF;
DstRect: TRectF;
begin
Bitmap := TBitmap.CreateFromFile('C:\MyImage.bmp');
try
SrcRect := Bitmap.BoundsF;
DstRect := SrcRect;
DstRect.Width := DstRect.Width/2;
DstRect.Height := DstRect.Height/2;
DstRect.Offset(8, 8);
Image1.Bitmap.Canvas.BeginScene;
Image1.Bitmap.Canvas.DrawBitmap(Bitmap, SrcRect, DstRect, 100);
Image1.Bitmap.Canvas.EndScene;
finally
Bitmap.Free;
end;
end;