我正在通过 加载图片stbi_load
,但出现了错误no SOI
。我在另一个项目中使用了该图片,并且加载成功。所以我认为图片和图片的路径是有效的。但是我不知道为什么会发生错误?以下是一些主要代码:
// Texture2D is a class of textures
Texture2D ResourceManager::loadTextureFromFile(const GLchar *file, GLboolean alpha){
// create texture object
Texture2D texture;
if (alpha){
texture.Internal_Format = GL_RGBA;
texture.Image_Format = GL_RGBA;
}
// load picture
int width, height, nrChannels;
unsigned char *image = stbi_load(file, &width, &height, &nrChannels, 0);
if (stbi_failure_reason())
std::cout << stbi_failure_reason() << std::endl;
// generate texture
texture.Generate(width, height, image);
// free image
stbi_image_free(image);
return texture;
}
我loadTextureFromFile("./Data/awesomeface.png", GL_TRUE);
用来获取纹理。并stbi_failure_reason()
返回no SOI
。当我在VS2013中调试项目时,内存image
有效但显示characters in a string are invalid
. 有人帮忙吗?