我正在尝试使用stbi_load()
加载纹理。这是我的代码:
int width, height, numComponents;
unsigned char* imgData = stbi_load(fileName.c_str(), &width, &height, &numComponents, 4);
if (imgData == NULL)
cout << "Cannot load texture" << endl;
//some code
//free
stbi_image_free(imgData);
当我运行程序时,它显示“无法加载纹理”。我不知道出了什么问题。我确定文件名是有效路径,因为当我写下以下代码时:
std::ifstream infile(fileName);
if (infile.good())
{
cout << "Good" << endl;
}
else
{
cout << "Not good" << endl;
}
它生成了Good
。有人能告诉我这段代码有什么问题导致imgData
为空(如果有人想知道,这个图像是一个*.jpg
文件)。任何帮助都将不胜感激!
编辑:我运行了stbi_failure_reason()
,它返回了progressive jpeg
。这是什么意思?
stbi_failure_reason()
,它返回了“渐进式 JPEG”。这是什么意思? - Hung Truong