关于Firemonkey,我该如何组合图像?

问题描述:

enter image description here关于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;