用简单的opengl图像库(SOIL)加载图像(颜色空间:灰色)

时间:2016-10-23 14:57:54

标签: c++ image png soil

我想读出灰度图像的像素值。使用RGB图像我没有问题。代码很简单:

int width, height;
unsigned char* image = SOIL_load_image(filepath.c_str(), &width, &height, 0, SOIL_LOAD_RGB);
std::cout << "size of image : " << size  << " width: " << width << " height: " << height << std::endl;

现在我想加载一个带有颜色空间GRAY的图像(png),我想我可以简单地将SOIL_LOAD_RGB更改为SOIL_LOAD_L,但这样做无法解决。

我在控制台上的输出是: 图像尺寸:-237407992宽度:10高度:-1312230988

并不是一成不变的。只有宽度保持为10,每次运行程序时高度都在变化。

使用灰度图像时,我是否需要更改或考虑?

1 个答案:

答案 0 :(得分:0)

你应该将第三个参数从'0'更改为'&amp; channel',就像这个

一样
unsigned char *image = SOIL_load_image(filepath.c_str(), &width, &height, &channel, SOIL_LOAD_L);