2016-02-02 39 views
1

使用Borland C++ Builder 2009我注意到,當替換TImagelist中的圖像時,Alpha通道數據以某種方式被破壞。如何設置TIcon實例以支持Alpha通道圖標(SupportsPartialTransparency)

TIcon *Icon = new TIcon() ; 
for (int x = 0 ; x < OS_Specific_count ; x++) 
    { 
    OS_xx_ImageList->GetIcon(x, Icon) ; 
    Use_ImageList->ReplaceIcon(x, Icon) ; 
    } 
delete Icon ; 

的問題也被描述(+ screenhots)在另一個Q(TImageList - True color + alpha channel vs. 8-bit (256 colors)),但現在我試圖縮小範圍有更具體的問題。

在幫助文件中瀏覽TIcon時,我注意到一個只讀屬性:SupportsPartialTransparency。 在我看來,它似乎是false,我不知道這不是解決這個問題的關鍵嗎? Icon->Transparent = true不會將SupportsPartialTransparency設置爲true!

我想知道我能做些什麼來確保TIcon實例正確「獲取」並「替換」alpha通道信息?

ImageLists是在設計時創建的,具有默認屬性(沒有任何更改),幷包含通過IDE導入的16x16圖標。導入的圖標包含Alpha通道信息。

+0

*透明* <> *部分透明*,超過*美元* == *半美元*。您不斷提問有關圖像列表的問題,而不包括該圖像列表的屬性。 –

+0

@KenWhite - 默認設置,16x16圖標 – Peter

+0

什麼是ColorDepth?你把它設置爲CD32?您被要求在您的其他問題中提供完整的MCVE,其中包括表單文件的內容。我看到你還沒有 - 請現在就這樣做。如果你不打算提供詳細信息,那麼我們不太可能會幫助你,並且在某些時候,忽略對更多信息的請求會引發惱人的人。我可以絕對肯定地說,alpha通道圖像正常工作;我的應用程序中有充足的工具欄,我爲我的應用程序使用多種尺寸的Alpha通道圖標。 –

回答

-1

我只是使用TPngImageList,它與TImageList兼容。此外,設計時編輯器更加靈活:您需要將.ico轉換爲.png。 editor

它免費且廣泛可用,例如:https://github.com/TurboPack。順便說一下,沒有透明度的頭痛:)順便說一下,將圖標保存爲PNG更合適,您可以在其他開發工具和平臺上使用它們。

相關問題