2017-08-26 110 views
0

我想在使用C++ Builder RAD Studio XE6時使用Png圖像。我使用的是graphics32庫,我設法安裝了runtime和designtime軟件包。我可以將TImage32組件放在我的窗體上,然後在TImage32中加載png圖像,但不是透明度,我在背景上獲得了白色。我只是不知道該怎麼做才能在我的表單上獲得透明的png圖像。Png在graphics32中的透明度,Builder XE6

我會非常感謝您的幫助。

回答

0

開箱即用Graphics32不支持比位圖(BMP)以外的任何其他格式。爲了使用PNG格式,必須使用其他庫,尤其是當您想要保留完整的透明度信息時。

其中一個本意是與Graphics32攜手工作的庫是GR32PNG。但是,由於各種原因,此庫不適用於設計時。其中一個事實是,即使使用可用的設計時間包,Graphics32從未設計爲支持除Bitmap(* .bmp)以外的任何其他格式。因此,需要重寫Graphics32的一部分以支持其他格式(迄今尚未完成)。

或者,應該可以使用XE6的內置支持來加載PNG文件。這也不是設計時間(出於同樣的原因),有時它不能正確處理透明度。更不用說它將圖像轉換爲TImage之前的事實,通常在加載過程中將所需的內存量加倍。

+0

昨天我在搜索graphics32中的透明PNG解決方案時遇到了麻煩。我做錯了,現在當我把Image321放在窗體上並嘗試加載一個文件時(Image321-> Bitmap-> LoadFromFile(「rabbit.png」);) - 我在模塊'rtl200中的地址爲501608E6處發生訪問衝突.bpl」。閱讀地址003A004F。我試圖再次安裝graphics32,但模塊rtl200.bpl中的訪問衝突問題依然存在。所以不幸的是,我目前無法嘗試gr32png庫。有什麼建議? –

+0

它不支持使用Image321-> Bitmap-> LoadFromFile(「rabbit.png」)加載PNG文件;它會假設rabbit.png是一個位圖,這可能是訪問衝突的原因。 – CWBudde

+0

當我從Object Inspector將圖像加載到Image321中時,一切似乎都奏效。但是,當我嘗試從應用程序加載圖像時,無論圖像具有什麼樣的文件格式,我都會得到AViolation消息(即使我嘗試使用Image321-> Bitmap-> LoadFromFile(「rabbit.bmp」) - 32位位圖)。我重新安裝了Rad XE6和graphics32,但問題仍然存在。是否有可能我做了一些Windows操作系統? –