Magick++ を使用していくつかの画像をロードしています。すべてのイメージ ロードで PhysFS をラップしたいので、ファイル パスではなく BLOB でイメージをロードする必要がありました。
このコード:
Magick::Image test("path/to/some.png");
問題なく動作します。
ただし、ブロブを実行すると、例外が発生します。
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 を設定しようとしましたが、問題は残ります。