如何在FMX.Graphics.TBitmap上绘制FMX.Surface.TBitmapSurface

时间:2018-07-25 16:04:29

标签: delphi canvas bitmap firemonkey

关注日期:
How to load large bitmap in FMX (fire monkey)
我需要在TBitmapSurface上绘制FMX.Graphics.TBitmap上的内容,我在网上找到了很多答案,但是它们要么在VLC中,要么在{{ 1}}或他们的目标是FMXsaving而不是依靠loading,这就是为什么我在这里问一个新问题。
现在,这是我当前的代码,用于将图像加载到TBitmap上:

TBitmapSurface

现在,在搜索了一下之后,我发现可以在var bitmapSurf: TBitmapSurface; path: string; begin path := 'image.jpg'; bitmapSurf := TBitmapSurface.Create; TBitmapCodecManager.LoadFromFile(path, bitmapSurf); end; 上使用Scanline,但是我不知道如何使用它在TBitmapSurface上绘制网络上有些人曾经使用过TBitmap,但是TBitmap.canvas.draw上却没有这种东西!。
最后,我的目标是绘制一个非常大的图像(1000 * 16000),该图像会在FMX TBitmapSurface 上加载到1中(因为{ {1}}不支持TBitmap,而我的身高为TBitmap,我需要在两个8192px上绘制它。
我正在使用Delphi 10.2.3。
谢谢。

1 个答案:

答案 0 :(得分:1)

您可以按如下所示将大图像(从文件中)拆分为两个$i = 0组件

就像在代码中一样,将图像从文件加载到TImage

然后创建另一个TBitmapSurface,并将其大小设置为大的一半。将大图像的前半部分复制到此表面并将其分配给TBitmapSurface。然后将后半部分复制到该表面并将其分配给Image1.Bitmap

Image2.Bitmap