Copiar do BitmapSource para o WritableBitmap

Estou tentando copiar uma parte de um BitmapSource para um WritableBitma

Este é o meu código até agora:

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();

Eu recebo "ArgumentException: o valor não cai dentro do intervalo esperado." na linha deCopyPixels.

Eu tentei trocarrow.PixelHeight * row.BackBufferStride comrow.PixelHeight * row.PixelWidth, mas recebo um erro dizendo que o valor é muito baixo.

Não foi possível encontrar um exemplo de código único usando essa sobrecarga deCopyPixels, então estou pedindo ajuda.

Obrigado

questionAnswers(1)

yourAnswerToTheQuestion