.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 件のコメント :
コメントを投稿