2012-03-30 60 views
2

我目前正在使用Firemonkey框架开展一个项目。在这个项目中,有一个TImageControl作为父项,它的子项将是几个TImage对象和可能的一些TEdit对象。FMX:展平多个图像

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

我想要实现的一个示例与Adobe Photoshop中使用的“拼合图像”功能类似,它将采用所有图层并将它们拼合成单一图层。这正是我想要实现的。使用文本时,它会将其平滑为正常图像层,并且无法编辑文本(因为它现在全部是单个图像层)。

到目前为止,我所能找到的都是使用JPEG单元的VCL示例。现在,虽然可以使这些代码适应这个Firemonkey应用程序(如“MonkeyMixer”方法),但我有兴趣知道是否有一种更简单的方法来实现这一点,它更适合于Firemonkey。也许沿着children as TImage的路线?

如果更适合,我可以将TImageControl父级更改为不同的组件类型,但我确实需要能够在最后保存最终图像。

+0

JPEG单元是否实际上具有其他VCL依赖关系?如果没有,那么它可以很容易地在FMX中使用,甚至没有任何黑客入侵。如果是这样,也许可以修改该单元以删除VCL依赖项? – 2012-04-01 12:45:52

回答

2

这个线程https://forums.embarcadero.com/thread.jspa?threadID=69764&tstart=30提示:

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

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

+0

对于相当长时间的延迟表示歉意,但这确实符合我的预期。 – 2012-05-24 13:19:15