##初めに
【注意】2021/05/22現在における最新のNuGetからインストールするMagick.NET-Q8-AnyCPUについてになります。
C#のwindowsアプリケーションを作っていまして、
Magick.NETでsvgファイルを扱う時に困って調べて疲れたので備忘録です。
##Magick.NETでsvgを扱う方法を調べた
色々なサイトを見ると、NuGetからMagick.NET-Q8-AnyCPUをインストールすると扱えると書いていますが、うまくいきませんでした。
情報はどれも古く、最新版の情報は少ないです。
以下はエラーが出たサンプルコードです。
//ピクチャーボックス表示用
System.Drawing.Bitmap myBitmap;
//svgファイル読み込み
var Magick = new ImageMagick.MagickImage("Sample.svg");
//ピクチャーボックスへ表示する為、Bitmapへ変換
myBitmap = Magick.ToBitmap();
//リソース解放
myMagick.Dispose();
//pictureBox1に表示
pictureBox1.Image = myBitmap;
pictureBox.Refresh();
var Magick = new ImageMagick.MagickImage("Sample.svg");
svgファイルを読み込みます。
myBitmap = Magick.ToBitmap();
bitmapに変換します。
一見何も問題なさそうですが、エラーが出てしまいます。
最新版のMagick.NET-Q8-AnyCPUでは .toBitmap()機能 が削除されています。
これでは、pictureBoxに入れられません。(ほかの方法もあるかもしれませんが)
##対策
拡張機能のNuGetでMagick.NET.SYystemDrawingをインストールしてください。
これをインストールすれば、.toBitmap()が使えるようになります。
この3つをインストールすれば少なくとも私の環境では大丈夫でした。
##まとめ
そんな感じでした。
参考:
C# Magick.NETを使ってみる。その1
http://1studying.blogspot.com/2017/05/c-magicknet.html
Magick.NETドキュメント
https://github.com/dlemstra/Magick.NET/tree/main/docs
tobitmap extension gone from release 1.18
https://github.com/dlemstra/Magick.NET/discussions/652