Ответ 1
pixelformer говорит, что он может это сделать http://www.qualibyte.com/pixelformer/#color_depths
У меня есть PNG-изображение с альфой, мне нужно преобразовать его в BMP для загрузки в мое приложение OpenGL. Тем не менее, BMP имеет только 1 вариант для 32-битного, то есть XRBG, где "X" - это просто дополнительный байт для цели заполнения (4-байтовое выравнивание).
Вопрос заключается в том, как усугубить этот байт X, чтобы содержать альфа-канал, чтобы BMP (32-разрядный XRGB) можно было загрузить в приложение GL с прозрачными пикселями?
Может быть, мне нужно сделать свой собственный инструмент для этого преобразования? Мне нужно RGBA, а не "XRGB" или "ARGB", мне нужно прочитать файл BMP XRGB и сканировать пиксель за пикселем для преобразования в RGBA?
Каков наилучший способ в VС++, если преобразование является обязательным? Любое программное обеспечение, которое может сделать прозрачный BMP?
pixelformer говорит, что он может это сделать http://www.qualibyte.com/pixelformer/#color_depths
Вы можете использовать PixelFormer.
Если вы используете ULW_ALPHA в UpdateLayeredWindow() и LoadImage(), функция ожидает, что файл BMP должен быть 32 -битная BGRA (с Предварительно умноженной альфа и Верхний порядок строк), кроме того, что функция не будет отображать растровое изображение правильно.
Вы можете преобразовать PNG в BMP 32-bit BGRA с PixelFormer (шаг 2).
P.S:.
Photoshop сломал поддержку при экспорте BMP с альфа-каналом (он не может делать альфа-версию, альфа-канал становится 0). Вы потеряете альфа-канал, но значение BGR будет загружаться правильно. Вы все еще можете использовать Photoshop, но должны вручную рисовать альфа на вкладке альфа-канала.
Gimp также имеет поврежденную поддержку при экспорте в формате BMP. LoadImage() ничего не загрузит, и вы не сможете увидеть изображение. Я подозреваю, что проблема связана с тем, что Gimp экспортирует BMP как Порядок строк сверху вниз.
Редактор ресурсов Visual Studio также имеет возможность создавать/редактировать 32bpp BGR, но не поддерживает альфа-канал
Мне нужно было сделать то же самое и написал небольшой инструмент командной строки, который можно найти здесь.
Программное обеспечение Opersource - ImageMagic или Gimp также может использоваться для этого преобразования изображений.