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
делегат без декодирования для этого формата изображения `’@ error / blob.c / BlobToImage / 350

Я убедился, что размер блоба совпадает с размером файла. Так что я уверен, что он читает это в память.

Я попытался использовать стандартную библиотеку ifstream, также установив std :: ios :: binary, но проблема остается.

0

Решение

Magick :: Blob как конструктор нуждается в void *, другими словами, в ячейке памяти для чтения данных. Но вы предоставляете указатель на объект std :: filebuf, и это не сработает. Вам нужно будет прочитать файл в память. Например, char * и использовать его в конструкторе Blob.

2

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


По вопросам рекламы [email protected]