var
bmp: TBitmap;
SrcRect, DstRect, SrcRect2, DstRect2: TRectF;
begin
bmp := TBitmap.Create(256, 256);
bmp.Canvas.BeginScene();
try
SrcRect := TRectF.Create(0, 0, 256, 256);
DstRect := TRectF.Create(20, 20, 236, 236);
SrcRect2 := TRectF.Create(0, 0, 256, 256);
DstRect2 := TRectF.Create(0, 0, 256, 256);
bmp.Clear(TAlphaColorRec.Null);
bmp.Canvas.DrawBitmap(Image1.Bitmap, SrcRect2, DstRect2, 0.8, false);
bmp.Canvas.DrawBitmap(Image2.Bitmap, SrcRect, DstRect, 0.8, false);
finally
bmp.Canvas.EndScene();
Image3.Bitmap.SetSize(256, 256);
Image3.Bitmap.CopyFromBitmap(bmp);
bmp.Free;
end;
end;