2014-02-20 2 views
4

У меня есть файл BMP, который я знаю, 32bpp и содержит альфа-информацию. Всякий раз, когда я использую конструктор класса System.Drawing.Bitmap или FromFile, он загружает его как 32bppRgb вместо 32bppArgb. Есть ли способ сохранить альфа-информацию? Я знаю, что BMP - это простой формат файла, для которого я мог бы написать свой собственный загрузчик, но я бы предпочел. Похоже, что где-то должен быть вариант.Потеря информации о альфа-канале, открывающая файл BMP

+0

Это несколько связано. Возможно, это поможет вам http://stackoverflow.com/questions/10658994/using-graphics-drawimage-to-draw-image-with-transparency-alpha-channel –

+1

Загрузка 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

Вы не можете использовать форматы load.bmp, поддерживающие альфа. –

ответ

0

К сожалению, GDI + не поддерживает альфа-каналы в файлах BMP. Вот соответствующее примечание в the docs:

Класс изображения не поддерживает альфа-прозрачность в растровых изображениях. До включите альфа-прозрачность, используйте PNG-изображения с 32 битами на пиксель.

Лучше всего преобразовать файл в формат, поддерживающий прозрачность (например, PNG) в отдельной программе, поддерживающей BMP-альфа, или написать собственный код для этого.

Смежные вопросы