Copiando desde BitmapSource a WritableBitmap

stoy tratando de copiar una parte de BitmapSource en un WritableBitmap.

Este es mi código hasta ahora:

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

Me sale "ArgumentException: el valor no se encuentra dentro del rango esperado". en la línea deCopyPixels.

Intenté intercambiarrow.PixelHeight * row.BackBufferStride conrow.PixelHeight * row.PixelWidth, pero aparece un error que dice que el valor es demasiado bajo.

No pude encontrar un solo ejemplo de código usando esta sobrecarga deCopyPixels, así que estoy pidiendo ayuda.

¡Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta