Загрузка с помощью простой библиотеки изображений opengl (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;

Теперь я хочу загрузить изображение (png) с цветовым пространством GREY, я подумал, что могу просто изменить SOIL_LOAD_RGB на SOIL_LOAD_L, но это не сработает.

Мой вывод на консоли: размер изображения: -237407992 ширина: 10 высота: -1312230988

И это не постоянно. Только ширина остается 10, и высота меняется каждый раз, когда я запускаю программу.

Что-то, что я должен изменить или рассмотреть, работая с серыми изображениями?

1 ответ

Вы должны изменить третий параметр с "0" на "& канал", как это

unsigned char *image = SOIL_load_image(filepath.c_str(), &width, &height, &channel, SOIL_LOAD_L);
Другие вопросы по тегам