BitmapSource の一部を WritableBitmap にコピーしようとしています。
これまでの私のコードは次のとおりです。
var bmp = image.Source as BitmapSource;
var row = new WriteableBitmap(bmp.PixelWidth, bottom - top, bmp.DpiX, bmp.DpiY, bmp.Format, bmp.Palette);
row.Lock();
bmp.CopyPixels(new Int32Rect(top, 0, bmp.PixelWidth, bottom - top), row.BackBuffer, row.PixelHeight * row.BackBufferStride, row.BackBufferStride);
row.AddDirtyRect(new Int32Rect(0, 0, row.PixelWidth, row.PixelHeight));
row.Unlock();
「ArgumentException: 値が期待される範囲内にありません」というメッセージが表示されます。の行でCopyPixels
。
でスワップしようとrow.PixelHeight * row.BackBufferStride
しrow.PixelHeight * row.PixelWidth
ましたが、値が低すぎるというエラーが表示されます。
この のオーバーロードを使用したコード例が 1 つも見つからなかったCopyPixels
ので、助けを求めています。
ありがとう!