私のアプリケーションでは、画像をアップロードしてサービスに送信し、サービスに別の形式に変換して返信することができます。私たちはSVGファイル形式のサポートを追加しています。バイト配列からファイルを読み込む際に問題が発生しています。MagickNetでストリームからSVGファイルを読み取る方法
問題は、私はSVG StreamオブジェクトとMagickImageInfoオブジェクトを初期化するとき、私はこのエラーを取得することです:
「この画像形式 『』 @エラー/ blob.c/BlobToImage/355用がないのデコードデリゲート」
代わりにMagickImageオブジェクトを作成し、MagickReadSettingsのインスタンスをSVGに明示的に設定すると、このエラーを回避できました。
MagickImageコードは、SVGのときにどのような種類のファイルであるかについてのヒントが必要であるというコア問題があります。他の種類のファイルについては、どのような種類のファイルであるかを推測できるようです。しかし、私はMagickImageクラスにファイルの形式を指定することができますが、MagickImageInfoクラスには、ファイルの種類をヒントするためのパラメータはありません。
可能な解決策の1つは、ファイルをディスクに書き込んだり、MagickImageInfoクラスでディスクからファイルを読み込んだりすることですが、サービスに複雑さを加えてディスクに依存するようにするため、アクセス。
関連するコード:
の作業コード:
var readSettings = new MagickReadSettings() { Format = MagickFormat.Svg };
using (MagickImage image = new MagickImage(stream, readSettings))
{
image.Write("C:\test"); // Actual code doesn't write to disk
}
ない作業コードは:
MagickImageInfo info = new MagickImageInfo(stream);