Как преобразовать 32-битный BMP в альфа-канал?[закрыто]

StackOverflow https://stackoverflow.com/questions/7369649

  •  28-10-2019
  •  | 
  •  

Вопрос

У меня есть изображение PNG с альфа-каналом, мне нужно преобразовать его в BMP, чтобы загрузить в мое приложение OpenGL.Однако BMP имеет только 1 вариант для 32-битной версии, то есть XRBG, где «X» - это просто дополнительный байт для заполнения (4-байтовое выравнивание).

Вопрос в том, как утилизировать этот байт "X", чтобы он содержал альфа-канал, чтобы BMP (32-битный XRGB) можно было загрузить в приложение GL с прозрачными пикселями?

Может, мне придется создать собственный инструмент для этого преобразования?Мне нужен RGBA, а не XRGB или ARGB. Должен ли я читать BMP-файл XRGB и сканировать пиксель за пикселем для преобразования в RGBA?

Как лучше всего использовать VC ++, если преобразование является обязательным? Любое программное обеспечение, которое может сделать прозрачный BMP?

Это было полезно?

Решение

pixelformer говорит, что он может это сделать http://www.qualibyte.com/pixelformer/#color_depths

Другие советы

Вы можете использовать PixelFormer .

Если вы используете ULW_ALPHA в UpdateLayeredWindow () и LoadImage () , функция ожидает, что файл BMP должен быть 32 -бит BGRA предварительным умножением альфа и порядком строк сверху вниз ), кроме этого, функция не будет правильно отображать растровое изображение.

Вы можете преобразовать PNG в 32-битный BGRA BMP с помощью PixelFormer (шаг 2).

  1. Откройте PixelFormer и нажмите "Файл"> "Создать".

введите здесь описание изображения

  1. Затем "Файл"> "Экспорт".

введите здесь описание изображения

P.S .:

Photoshop не поддерживает экспорт BMP с альфа-каналом (он не может выполнять предварительное умножение альфа-канала, значение альфа-канала станет 0). Вы потеряете альфа-канал, но значение BGR загрузится правильно. Вы по-прежнему можете использовать Photoshop, но должны вручную нарисовать альфа-канал на вкладке альфа-канала.

GIMP также не поддерживает поддержку при экспорте в BMP. LoadImage () ничего не загружает, и вы не видите изображение. Я подозреваю, что эта проблема вызвана тем, что GIMP экспортирует BMP в порядке строк сверху вниз .

Редактор ресурсов Visual Studio также может создавать / редактировать BGR 32bpp, но не поддерживает альфа-канал

Однажды мне нужно было сделать то же самое, и я написал небольшой инструмент командной строки, который можно найти здесь .

Программное обеспечение с открытым исходным кодом. Для преобразования изображений также можно использовать ImageMagick или Gimp .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top