FMX:拼合多个图像

时间:2012-03-30 16:50:36

标签: delphi delphi-xe2 firemonkey

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

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

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

到目前为止,我所能找到的都是使用JPEG单元的VCL示例。现在,虽然可以调整这些代码以使用这个Firemonkey应用程序(例如“MonkeyMixer”方法),但我有兴趣知道是否有更简洁的方法来实现这一点,这对Firemonkey更为原生。也许是children as TImage

的内容

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

1 个答案:

答案 0 :(得分:2)

此帖子https://forums.embarcadero.com/thread.jspa?threadID=69764&tstart=30建议:

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

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