Magick++ не загружается из блога
Я использую Magick++ для загрузки некоторых изображений. Поскольку я хочу обернуть PhysFS для всех своих загрузок изображений, мне нужно было загружать изображение по BLOB-объекту, а не по пути к файлу.
Этот код:
Magick::Image test("path/to/some.png");
Работает без проблем.
Однако, когда я делаю BLOB-объект, я получаю исключение:
PhysFS::ifstream img ("path/to/some.png");
Magick::Blob blob( img.rdbuf(), img.length() );
Magick::Image test(blob);
Исключение составляет:
завершается с необработанным исключением типа Magick::ErrorMissingDelegate no делегат декодирования для этого формата изображения `' @ error/blob.c/BlobToImage/350
Я убедился, что размер блоба совпадает с размером файла. Так что я уверен, что он читает это в память.
Я попытался использовать стандартную библиотеку ifstream, также установив std:: ios:: binary, но проблема остается.
1 ответ
Magick::Blob как конструктор нуждается в void*, другими словами, в ячейке памяти для чтения данных. Но вы предоставляете указатель на объект std:: filebuf, и это не сработает. Вам нужно будет прочитать файл в память. Например, char* и использовать его в конструкторе Blob.