
10.08.2025, 18:51
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,105
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Цитата:
Сообщение от Elijah
Что за функция DrawVCLBitmapOnFMXCanvas? Где она находится?
|
Код:
procedure DrawVCLBitmapOnFMXCanvas(VCLBitmap: Vcl.Graphics.TBitmap; FMXCanvas: TCanvas; const DestRect: TRectF);
var
FMXBitmap: FMX.Graphics.TBitmap;
BitmapData: TBitmapData;
x, y: Integer;
begin
// Create an FMX Bitmap
FMXBitmap := FMX.Graphics.TBitmap.Create(VCLBitmap.Width, VCLBitmap.Height);
try
// Lock the FMX Bitmap for writing
if FMXBitmap.Map(TMapAccess.Write, BitmapData) then
try
// Copy pixel data from VCL Bitmap to FMX Bitmap
for y := 0 to VCLBitmap.Height - 1 do
for x := 0 to VCLBitmap.Width - 1 do
BitmapData.SetPixel(x, y, VCLBitmap.Canvas.Pixels[x, y]);
finally
FMXBitmap.Unmap(BitmapData);
end;
// Draw the FMX Bitmap onto the FMX Canvas
FMXCanvas.DrawBitmap(FMXBitmap, RectF(0, 0, FMXBitmap.Width, FMXBitmap.Height), DestRect, 1.0);
finally
FMXBitmap.Free;
end;
end;
|