您不能分配FMX
TBitmap
至VCL
TBitmap
. 它们彼此不兼容(一开始你甚至不应该在同一个项目中混合VCL和FMX,它们不是为一起使用而设计的)。
您必须保存FMX
TBitmap
到BMP格式的流/文件,然后将其加载到VCL中
TBitmap
.
使用文件很简单:
Image1.Bitmap.SaveToFile('file.bmp');
BMP.LoadFromFile('file.bmp');
然而,当使用流时,FMX的
TBitmap.SaveToStream()
仅以PNG格式保存,因此您必须使用
TBitmapCodecManager.SaveToStream()
以BMP格式保存,例如:
Strm := TMemoryStream.Create;
try
Surface := TBitmapSurface.Create;
try
Surface.Assign(Image1.Bitmap);
TBitmapCodecManager.SaveToStream(Strm, Surface, '.bmp');
finally
Surface.Free;
end;
Strm.Position := 0;
BMP.LoadFromStream(Strm);
finally
Strm.Free;
end;