使用FreeImage,可以在ARGB32或RGBA32而不是BGRA32中输出ConvertToRawBits

With FreeImage is it possible to have ConvertToRawBits output in ARGB32 or RGBA32 rather than BGRA32?

本文关键字:BGRA32 ConvertToRawBits 输出 RGBA32 FreeImage ARGB32 使用      更新时间:2023-10-16

我正在加载PNG以用作Unity中的纹理。当我使用 ConvertToRawBits(( 时,它会输出到 BGRA32。是否可以输出到 ARGB32 或 RGBA32?

https://gist.github.com/ciwolsey/24635ea523b4a6b758783688be53bf86

您有两种选择,您可以:

  1. 重新编译FreeimageFREEIMAGE_COLORORDER设置为FREEIMAGE_COLORORDER_RGB值 (1(。然后,您加载的图像将始终采用RGBA32格式。如果在编译时未指定此FREEIMAGE_COLORORDER,则实际的颜色顺序设置将根据目标系统的字节序确定。

  2. 使用Freeimage SwapRedBlue32函数将加载的图像从BGRA32转换为RGBA32格式。

这是关于这个主题的一个很好的讨论。