这是一个简单的问题,但我似乎无法在文档的任何地方找到答案。我知道 FreeImage 支持1, 4, 8, 16, 24, and 32+ bit
图像。但除此之外,文档提到16 bit
图像可以是任何一种格式555
或565
格式。我想知道其他图像位深度存储为什么格式?或者如果格式是任意的,有没有办法从 FreeImage 库中动态检索格式?
问问题
1143 次
1 回答
0
在 FreeImage 中很容易确定 555 与 565 模式:
unsigned red_mask, green_mask, blue_mask;
red_mask = FreeImage_GetRedMask(dib);
green_mask = FreeImage_GetGreenMask(dib);
blue_mask = FreeImage_GetBlueMask(dib);
if (FreeImage_GetBPP(dib) == 16)
{
if ((red_mask == FI16_565_RED_MASK) &&
(green_mask == FI16_565_GREEN_MASK) &&
(blue_mask == FI16_565_BLUE_MASK))
{
// We are in RGB16 565 mode
}
else
{
// We are in RGB16 555 mode
}
}
而且您始终可以使用FreeImage_ConvertTo16Bits555()
和FreeImage_ConvertTo16Bits565()
函数转换为您想要的格式。
于 2013-07-03T15:37:22.593 回答