【问题标题】:NoDecodeDelegateForThisImageFormat Error reading .png file with ImageMagickNoDecodeDelegateForThisImageFormat 使用 ImageMagick 读取 .png 文件时出错
【发布时间】:2014-05-25 23:12:59
【问题描述】:

我正在尝试使用 ImageMagick 通过使用 ASSIMP 库加载网格的(在 Blender 中制作)纹理。 Mesh 具有单一材质和单一纹理。

我正在尝试学习两个教程:Tutorial38Tutorial22

下面的代码块是有问题的;

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, 0, GL_RGBA, m_pImage->columns(), m_pImage->rows(), 0, GL_RGBA, 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 'Resources/white.png' error/constitute.c/ReadImage/550

据我所知,ImageMagick 已正确安装,我已尝试多次手动编译它,但我总是以新库出现未解决的外部错误(它们似乎比项目中包含的)。

尝试的版本:

ImageMagick-6.6.5-10 ImageMagick-6.6.0 ImageMagick-6.8.9 ImageMagick-windows zip 从他们的说明页面。

我在尝试自我安装程序二进制文件时遇到的一个大问题是,当代码需要两者时,它们不包含候选版本和调试库;而我如前所述编译的源版本不正确并导致未解决的外部错误,或者没有明确存放它们的 Include 和 Lib 文件夹。

我已经联系了教程的开发人员,但到目前为止他唯一说的是我可能安装了错误版本的 ImageMagick,并且与他所包含的版本不兼容......没有说哪个版本是正确的是。

编辑 - 1: - 尝试从Here 安装/重新安装libpng 没有变化。

【问题讨论】:

  • 你也安装了libpng 吗? imagemagick.org/script/formats.php
  • 当我输入 identify -list 格式时,它被列为本机/读/写,我想应该安装它,我会尝试看看我是否可以重新安装它,但它对 jpg 有同样的错误和任何其他文件格式。
  • 也许安装代表可能会解决这个问题,但不幸的是,似乎没有针对外行的任何说明;尝试编译 libpng 只会导致一百多个编译器错误,无法找到正确的文件。

标签: c++ image opengl textures blender


【解决方案1】:

好吧,经过三个多月的精心折磨,我很尴尬地找到了解决方案,就是将编译器切换到“发布”模式而不是“调试”模式。我不再抱怨并完美地加载了我拥有的纹理。

无法在“调试”模式下工作似乎是 ImageMagick 的错误或 Visual Studios 2010 的错误,我想我会提交错误报告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2016-08-21
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2020-10-22
    相关资源
    最近更新 更多