Я пытаюсь скопировать часть 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
, но затем я получаю сообщение об ошибке, говорящее о слишком низком значении.
Я не смог найтиодин пример кода с использованием этой перегрузки CopyPixels
, поэтому я прошу помощи.
Спасибо!