gpt4 book ai didi

c++ - 有没有办法使用 glDrawPixels 渲染单 channel 灰度图像?

转载 作者:搜寻专家 更新时间:2023-10-31 02:02:11 24 4
gpt4 key购买 nike

我正在尝试创建一个程序,通过使用 oiio 和 OpenGL(简单的功能,没有什么太疯狂)来处理所有类型的图像。

我有 4 channel 和 3 channel 图像在工作,我只是不确定如何渲染灰度(1 channel )图像。

if (channels == 4){
glDrawPixels(W, H, GL_RGBA, GL_FLOAT, img);
}

我希望答案类似于上面的代码片段。

最佳答案

如果您需要一个每个像素都是单个灰度值的图像,那么您可以使用格式 GL_LUMINANCE。参见 glDrawPixels .
转换后的亮度值设置为红、绿、蓝颜色 channel ,alpha channel 将设置为1。

如果每个像素的类型是 32 位浮点值,则格式为 GL_FLOAT:

glDrawPixels(W, H, GL_LUMINANCE, GL_FLOAT, img);

如果灰度值以字节编码,则必须使用无符号归一化浮点格式 GL_UNSIGNED_BYTE:

glDrawPixels(W, H, GL_LUMINANCE, GL_UNSIGNED_BYTE, img);

关于c++ - 有没有办法使用 glDrawPixels 渲染单 channel 灰度图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57789988/

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