Delphi FMX:展平多个图像

Delphi FMX:展平多个图像,delphi,delphi-xe2,firemonkey,Delphi,Delphi Xe2,Firemonkey,我目前正在使用Firemonkey框架进行一个项目。在这个项目中,有一个TImageControl作为父项,它的子项将是几个TImage对象,可能还有一些TEdit对象 我想做的是,当用户单击一个按钮时,它会将TImage子对象的内容合并到TImageControl父对象的内容中,形成一个场景,然后保存到文件中(因此,在最终图像中保持子对象的相对位置很重要)。使用TEdit子控件的text属性,我希望它将每个TEdit中位于父控件内相对位置的文本写入最终图像 我想要实现的一个例子类似于Adobe

我目前正在使用Firemonkey框架进行一个项目。在这个项目中,有一个TImageControl作为父项,它的子项将是几个TImage对象,可能还有一些TEdit对象

我想做的是,当用户单击一个按钮时,它会将TImage子对象的内容合并到TImageControl父对象的内容中,形成一个场景,然后保存到文件中(因此,在最终图像中保持子对象的相对位置很重要)。使用TEdit子控件的text属性,我希望它将每个TEdit中位于父控件内相对位置的文本写入最终图像

我想要实现的一个例子类似于Adobe Photoshop中使用的“展平图像”功能,它将所有层都展平,并将它们展平到一个层中。这正是我希望达到的目标。对于文本,它只是简单地将其展平,就好像它是一个普通的图像层,并且您失去了编辑文本的能力(因为它现在都是一个图像层)

到目前为止,我所能找到的都是使用JPEG单元的VCL示例。现在,当然可以调整这些代码来使用Firemonkey应用程序(例如“MonkeyMixer”方法),但我想知道是否有一种更干净的方法来实现这一点,它更适合Firemonkey。也许是像TImage这样的
儿童

如果更合适的话,我愿意将TImageControl父级更改为其他组件类型,但我确实需要能够在最后保存最终图像。

此线程建议:

var BMP: TBitmap;
 BMP := FireMonkeyObject.MakeScreenShot;
 BMP.SaveToFile('MyScreenShot.png');
 BMP.Free;

加上其他可能的解决方案。(我个人没有任何经验)。

JPEG单元实际上是否有其他VCL依赖项?如果没有,那么它可以很容易地在FMX中使用,甚至没有任何黑客攻击。如果是这样的话,也许可以修改该单元以删除VCL依赖项?很抱歉响应延迟太长,但这确实如我所预期的那样有效。