我正在尝试将 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
,所以我正在寻求帮助。
谢谢!