2012-03-30 42 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