.NETのサポート画像形式について
.NETは標準でwebpの読み込み対応していません。(2022/12/05現在)
MSDNには、対応フォーマットについてBitmapDecoder クラスの説明で以下のように記載があります。
BitmapDecoder では、次の形式をデコードできます。 ・JPEG ・PNG ・GIF ・TIFF ・BMP ・ICO ・JPEG-XR ・Microsoft カメラ コーデック パックを使用して、インストールされているカメラの未加工のフォーマット。
.NETでwebpを読み込むライブラリ
WEBを検索すると以下のようないライブラリが見つかります。
残念ながらImageProcessorは、.NETFramework4.8以下でしか動作させることができません。
WebP-wrapperは、webpプロジェクトが提供している libwebpのラッパーです。アセンブリ提供でなく単一クラスのソースコード提供ですので、.NET Framework / .NETへの組み込みが用意です。但し、各OSで動作せれるかは別問題となります。
WebP-wrapperの使い方
githubからソースコードをクローンし、中にあるlibwebp_x64.dll、libwebp_x86.dll、WebPWrapper.csをwebpを使用したプロジェクト内ににコピーし組み込みます。
以下のように使用します。
//WebPデコーダーを作成する WebP webp = new WebP(); //ファイルから読み込む場合 Bitmap bitmap_webp = webp.Load(fullpath); //byte配列から読み込む場合 Bitmap bitmap_webp = webp.Decode(data); //BitmapSourceとして使う場合は以下のようにして変換する BitmapSource bitmap = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( bitmap_webp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); bitmap.Freeze();
0 件のコメント :
コメントを投稿