我有一个 128x128 尺寸的 PNG 图像。当我用 libpng 读取它的 IHDR 块时,它显示图像的颜色类型为 3。问题是我无法在任何地方找到这种颜色类型的纹理格式。我想用 OpenGL 绘制这个图像。但如果没有正确的纹理格式,图像颜色就不是它应该的样子。而且,如果可以提供任何参考资料,我将不胜感激。
我使用此方法为其他颜色类型设置纹理格式
inline void GetPNGtextureInfo (int color_type,GLuint *format)
{
switch (color_type)
{
case PNG_COLOR_TYPE_GRAY:
*format = GL_LUMINANCE;
break;
case PNG_COLOR_TYPE_GRAY_ALPHA:
*format = GL_LUMINANCE_ALPHA;
break;
case PNG_COLOR_TYPE_RGB:
*format = GL_RGB;
break;
case PNG_COLOR_TYPE_RGB_ALPHA:
*format = GL_RGBA;
break;
default:
break;
}
}