なんとなく

なんとなく書きます

WriteableBitmapの一部を抜き出す方法

/// <summary>
/// 元画像の一部を抜き出した画像の作成
/// </summary>
/// <param name="bitmap">元画像</param>
/// <param name="rectangle">抜き出す領域</param>
/// <returns>抜き出した画像</returns>
static public WriteableBitmap _TrimingImage(WriteableBitmap bitmap , System.Windows.Int32Rect rectangle)
{
   WriteableBitmap miniImage = new WriteableBitmap(rectangle.Width , rectangle.Height , 96 , 96 , System.Windows.Media.PixelFormats.Gray8 , BitmapPalettes.Gray256);
   miniImage.Lock();
   //コピーしたい画像データの一時格納先
   byte[] buffer = new byte[miniImage.PixelWidth * miniImage.PixelHeight];
   //一時格納先にデータの保存
   bitmap.CopyPixels(rectangle , buffer , miniImage.BackBufferStride , 0);
   //保存先にデータの書き込み
   miniImage.WritePixels(new System.Windows.Int32Rect(0 , 0 , miniImage.PixelWidth , miniImage.PixelHeight) , buffer , Convert.ToInt32(miniImage.BackBufferStride) , 0);
   miniImage.Unlock();
   return miniImage;
}