Необработанное исключение с ImageMagick

0

Я получаю эту ошибку: Необработанное исключение в 0x76abc41f в sampleappm.exe: исключение Microsoft C++: Magick :: ErrorBlob в ячейке памяти 0x004cf1c8.. Когда ai выполнит следующий код:

#include <Magick++.h> 
#include <iostream> 
using namespace std; 
using namespace Magick; 

int main(int argc,char **argv) 
{ 
    InitializeMagick(*argv);
    Magick::Image image("100x120", "linen");
    image.fillColor("black");
    image.write("test.png");// if i comment this line there is no more error at the execution
    return 0; 
}
Теги:
imagemagick

2 ответа

0
Лучший ответ

Я сделал несколько изменений для обработки исключения, этот код работал для меня, скомпилированный на VС++ 2013 64bit.

Вот результат test.png

Также убедитесь, что у вас есть разрешение на запись, потому что ErrorBlob является ошибкой подсистемы ввода-вывода.

#include <Magick++.h> 
#include <iostream> 
using namespace std; 
using namespace Magick; 
int main(int argc,char **argv) 
{ 
  InitializeMagick(*argv);

  try { 
    Image image("100x120", "linen");
    image.fillColor("black");
    image.write("test.png");
  } 
  catch( Exception &error_ ) 
    { 
      cout << "Caught exception: " << error_.what() << endl; 
      return 1; 
    } 
  return 0; 
}
  • 0
    я получаю эту ошибку: перехвачено исключение: sampleapp.exe UnableToOpenBlob '# FAFAF0F0E6E6': такого файла нет r каталог @ error / blob.c / OpenBlob / 2643
  • 0
    Функция 'blob' используется для открытия потоков, файлов и строк, как возможных источников данных изображения. Ошибка, которую вы получаете, заключается в том, что по какой-то причине у библиотеки возникли проблемы с поиском файлов конфигурации. Возможно, отсутствуют некоторые параметры среды, необходимые для конкретной установки на вашем компьютере. Попробуйте выполнить в папке установки только для проверки.
Показать ещё 8 комментариев
0

Я предлагаю, вы поймаете исключение Exception, которое вызывается реализацией Magick, напишите его в cout и попытайтесь выяснить, что произошло:

#include <Magick++.h> 
#include <iostream> 
using namespace std; 
using namespace Magick; 

int main(int argc,char **argv) 
{ 
    InitializeMagick(*argv);
    Magick::Image image("100x120", "linen");
    try {
        image.fillColor("black");
        image.write("test.png"); // this line causes the error
    } catch (const Exception& e) {
        cout << e.what() << endl;
    }
    return 0; 
}

Ошибка, которую вы видите в исходном примере, говорит только о том, что библиотека среды выполнения MS не может обрабатывать этот тип исключения.

  • 0
    я получаю эту ошибку: перехвачено исключение: sampleapp.exe UnableToOpenBlob '# FAFAF0F0E6E6': такого файла нет r каталог @ error / blob.c / OpenBlob / 2643

Ещё вопросы

Сообщество Overcoder
Наверх
Меню