我正在使用 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
我已验证 blob 与文件大小相同。所以我确信它正在将它读入内存。
我尝试使用标准库 ifstream 以及设置 std::ios::binary 但问题仍然存在。