Копирование из BitmapSource в WritableBitmap

Я пытаюсь скопировать часть 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 , поэтому Я прошу помощи.

Спасибо!

9
задан Liam McInroy 29 August 2012 в 15:55
поделиться