2014-02-20 173 views
4

我有一個BMP文件,我知道它是32bpp幷包含alpha信息。每當我使用System.Drawing.Bitmap類的構造函數或FromFile時,它都會將其加載爲32bppRgb而不是32bppArgb。有沒有辦法保持alpha信息? 我知道BMP是一個簡單的文件格式,我可以寫我自己的加載程序,但我寧願不。似乎應該有某個選項。失去打開BMP文件的alpha通道信息

+0

這有點相關。也許它會幫助你http://stackoverflow.com/questions/10658994/using-graphics-drawimage-to-draw-image-with-transparency-alpha-channel –

+1

加載與alpha通道bmps似乎並不支持。看到這個線程:http://social.msdn.microsoft.com/Forums/vstudio/en-US/2f81979d-30f0-4a41-9c5e-ff49c28ab814/loading-image-from-32-bits-bitmap-file?forum= csharpgeneral。 –

+1

您無法加載支持alpha的load.bmp格式。 –

回答

0

不幸的是,GDI +不支持BMP文件中的alpha通道。以下是the docs中的相關注意事項:

Image類不支持位圖中的透明度。若要啓用Alpha透明度,請使用每像素32位的PNG圖像。

最好的辦法是將文件轉換爲支持透明度(如PNG)的格式,支持BMP alpha的單獨程序,或者編寫自己的代碼來執行此操作。