NoDecodeDelegateForThisImageFormat Ошибка чтения .png файла с ImageMagick

Я пытаюсь использовать ImageMagick для загрузки текстуры Mesh (сделанной в Blender) из библиотеки ASSIMP. Сетка имеет один материал и одну текстуру.

Я пытался следовать двум урокам: 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, 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 установлен правильно, я много раз пытался скомпилировать его вручную, но всегда получаю нерешенные внешние ошибки с новыми библиотеками (кажется, что они на 2-3 МБ больше, чем те, что включены в проект).

Попытки версий:

ImageMagick-6.6.5-10
ImageMagick-6.6.0
ImageMagick-6.8.9
ImageMagick-окна застегивают со страницы их инструкций.

Большая проблема, с которой я сталкиваюсь при попытке создания двоичных файлов самоустановщика, состоит в том, что они не включают в себя как Release Candidate, так и Debug lib, когда код требует обоих; в то время как исходные версии, которые я компилирую, как упоминалось, не верны и приводят к неразрешенным внешним ошибкам или не имеют четкого хранения их папок Include и Lib.

Я связался с разработчиком учебника, но единственное, что он сказал на данный момент, это то, что у меня может быть установлена ​​неправильная версия ImageMagick и она несовместима с версией, которую он включает … Не говоря, какая версия будет правильной.

Редактировать — 1:
— Попытка установки / переустановки libpng из Вот Без изменений.

4

Решение

Что ж, смущающе я нашел решение после трех с лишним месяцев сложной пытки, и это было переключить компилятор в режим «Release» вместо «Debug». Я больше не жалуюсь и отлично загружаю текстуры, которые у меня были.

Не работает в режиме «Отладка» похоже на ошибку в ImageMagick или ошибку в Visual Studios 2010, я думаю, я отправлю отчет об ошибке.

1

Другие решения

Других решений пока нет …