c – NoDecodeDelegateForThisImageFormat使用ImageMagick读取.p
我正在尝试使用
ImageMagick从使用ASSIMP库加载Mesh(在Blender中制作)纹理.网格具有单一材质和单一纹理.
我试图遵循两个教程:Tutorial38和Tutorial22. 下面的代码块是有问题的地方; bool Texture::Load() { try { m_pImage = new Magick::Image(m_fileName); /* RIGHT HERE IT OCCURS */ m_pImage->write(&m_blob,"RGBA"); } catch (Magick::Error& Error) { std::cout << "Error loading texture '" << m_fileName << "': " << Error.what() << std::endl; return false; } glGenTextures(1,&m_textureObj); glBindTexture(m_textureTarget,m_textureObj); glTexImage2D(m_textureTarget,GL_RGBA,m_pImage->columns(),m_pImage->rows(),GL_UNSIGNED_BYTE,m_blob.data()); glTexParameterf(m_textureTarget,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameterf(m_textureTarget,GL_TEXTURE_MAG_FILTER,GL_LINEAR); return true; } 它几乎立即退出Try-Catch并显示当前错误: “加载纹理时出错,’Resources / white.png’:myproject.exe:NoDecodeDelegateForThisImageFormat’Sources / white.png’error / construct.c / ReadImage / 550 至于我可以确定ImageMagick是否正确安装,我已经多次尝试手动编译它,但我总是使用新的libs得到Unresolved External错误(它们似乎比包含的那些大2-3 MB大)该项目). 尝试的版本: ImageMagick的-6.6.5-10 尝试自安装程序二进制文件时遇到的一个大问题是,当代码需要时,它们不包括Release Candidate和Debug lib.虽然我提到的源代码版本不正确,但导致Unresolved External错误,或者没有明确存放他们的Include和Lib文件夹. 我已经联系了本教程的开发人员,但到目前为止他唯一说的是我可能安装了错误版本的ImageMagick并且与他包含的版本不兼容……没有说明哪个版本是正确的. 编辑 – 1: 解决方法
好吧,令人尴尬的是,经过三个月的精心折磨,我找到了解决方案,并将编译器切换到“释放”模式而不是“调试”.我不再抱怨并且完美地加载了我的纹理.
不工作在“调试”模式似乎是ImageMagick的错误或Visual Studios 2010的错误,我想我会提交错误报告. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |