【发布时间】:2021-11-03 07:50:35
【问题描述】:
我使用stbi_load()加载图片失败,但是没有报错。
unsigned char* data = stbi_load("world_test.jpg", &width, &height, &nrChannel, 0);
if (data)
{
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
glGenerateMipmap(GL_TEXTURE_2D);
}
else
{
cout << "load image failed" << endl;
}
此“world_test.jpg”是 43K * 21k JPG 图片,函数 stbi_load() 无法读取图片。但是之前的 21k * 10K "world.jpg" 可以读取。两张图片的其他属性相同。是不是因为图片像素太大?
【问题讨论】:
-
你在stbi里面调试了吗?根据我的计算,与您的 jpg 对应的位图大小约为 3.6GB,溢出了 32 位 int。你的进程是 64 位的吗?