gpt4 book ai didi

c++ - 获取 FreeImage 像素数据格式?

转载 作者:太空宇宙 更新时间:2023-11-04 14:09:38 24 4
gpt4 key购买 nike

这是一个简单的问题,但我似乎无法在文档中的任何地方找到答案。我知道 FreeImage 支持 1、4、8、16、24 和 32+ 位 图像。但除此之外,文档还提到 16 位 图像可以是 555565 格式。我想知道其他图像位深度存储为什么格式?或者如果格式是任意的,有没有办法从 FreeImage 库中动态检索格式?

最佳答案

在 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() 函数来转换为您想要的格式。

关于c++ - 获取 FreeImage 像素数据格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15288798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com