Ваш файл BMP не закодирован правильно для поддержки прозрачности.
Согласно следующей записи :
В зависимости от метода сжатия, метод RGB по умолчанию поддерживает 24-битный цвет, но сжатие BITFIELDS поддерживает 32- битовый цвет (24-битный + альфа-канал).
Согласно Википедии :
Для BI_BITFIELDS
адрес заголовка 1Eh
должен иметь значение 3
.
И адреса 36h
, 3Ah
, 3Eh
, 42h
значения определяют маску:
36h 4 00 00 FF 00 00FF0000 Red channel bit mask (BI_BITFIELDS)
3Ah 4 00 FF 00 00 0000FF00 Green channel bit mask (BI_BITFIELDS)
3Eh 4 FF 00 00 00 000000FF Blue channel bit mask (BI_BITFIELDS)
42h 4 00 00 00 FF FF000000 Alpha channel bit mask
Вы можете проанализируйте Метаданные вашего изображения онлайн здесь
Результат анализа вашего файла, Сжатие Нет :
File Name: BLUE_CLOSEBUTTON_BMP.bmp
File Size: 14 kB
...
Compression: None
Ваш файл BMP (глубина в битах составляет 32 бита, но нет прозрачности):
Я использовал GIMP для сохранения BMP с прозрачностью.
Результат анализа, Сжатие Битовые поля :
File Name: 1.bmp
File Size: 14 kB
Compression: Bitfields
...
Red Mask: 0xff000000
Green Mask: 0x00ff0000
Blue Mask: 0x0000ff00
Alpha Mask: 0x000000ff
Вот BMP с прозрачными полосами (файл был автоматически преобразован в PNG сайтом):
Проверьте, действительно ли ваше изображение имеет прозрачность:
<img src="https://i.stack.imgur.com/NCdOW.png" style="background-color:blue;" />
Проверьте, имеет ли изображение, которое я разместил, прозрачность:
<img src="https://i.stack.imgur.com/urljs.png" style="background-color:blue;" />