我正在使用 stb_image_load加载png 文件。代码看起来像
stbi_uc* pixels = stbi_load("textures/viking_room.png", &texWidth, &texHeight, &texChannels, STBI_rgb_alpha);
...
if (stbi_failure_reason()) std::cout << stbi_failure_reason();
if (!pixels) throw std::runtime_error("failed to load texture image!");
现在 stbi_failure_reason() 返回no SOI
但pixels
不为空并完美加载纹理。github 上关于这个的第一个结果是关于格式错误的 png 标头,所以我使用 pngcheck 进行了检查,但它说 png 文件是好的。
知道为什么会发生这种情况吗?我在加载此图像时也遇到了问题但是它可以与其他图像一起使用,将来有什么办法可以避免这种情况吗?