【WPF】 二次元配列をWriteableBitmapに変換する
二次元配列をWriteableBitmapに変換する方法をメモします。グレースケール画像をbyteの二次元配列で表現しており、これをImageクラスに表示するためWriteableBitmapに変換したかった、というのが動機になります。
using System.Windows.Media; using System.Windows.Media.Imaging; private WriteableBitmap ToWriteableBitmap(byte[,] image) { int width = image.GetLength(1); int height = image.GetLength(0); var bitmap = new WriteableBitmap(width, height, 96.0, 96.0, PixelFormats.Gray8, BitmapPalettes.Gray256); int stride = width*1; byte[] pixels = image.Cast<byte>().ToArray(); bitmap.WritePixels(new Int32Rect(0, 0, width, height), pixels, stride, 0); return bitmap; }
上記のToWriteableBitmapの返り値をImageのSourceプロパティに代入することで画像を表示することが出来ます。