2010-02-16 73 views
7

使用Delphi 2010我想將PNG圖像複製到剪貼板,同時保留Alpha透明度。不幸的是,TPngImage.SaveToClipboardFormat方法會將其繪製到位圖上,透明度將會丟失。如何使用Delphi將PNG圖像複製到剪貼板中

我想PNG圖像粘貼在應用程序,如Photoshop和Word與alpha透明度。

任何想法如何做到這一點?其他應用程序如何在剪貼板中複製透明度?

+0

約翰,併爲你的工作,因爲我現在有同樣的問題riht,你使用TPNGObject?我使用D7 byt我認爲它是相同的概念 – 2011-11-29 13:32:34

+0

據我記憶,沒有多少應用程序處理剪貼板中的PNG格式,但這是一箇舊項目,我不記得確切的限制。 – jonjbar 2011-12-01 10:46:26

回答

3

這可能是因爲他們使用替代剪貼板格式,請參閱 http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx以獲取可用剪貼板格式的列表。 或者他們可以註冊自己的剪貼板格式如

RegisterClipboardFormat('PNG') 

,然後只需PNG數據寫入到剪貼板。如果指定的剪貼板格式字符串是標準的(即其他應用程序註冊相同的剪貼板格式),那麼您將能夠將其粘貼到支持此剪貼板格式的其他應用程序中。

您可能需要直接調用Windows函數,因爲Delphi的剪貼板包裝不太好。

5

我想先將具有透明度信息的圖像複製到Photoshop中的剪貼板,然後檢查剪貼板上的實際內容。當你知道這一點時,你可能會想出如何自己編寫這些數據。

3

用Delphi XE,我所做的就是:

Clipboard.Assign(Image1.Picture.Graphic); 
+1

對於其他讀者,剪貼板是在ClipBrd單元中定義的。 – saastn 2018-01-25 02:36:07

相關問題