9
BitmapSource의 일부를 WritableBitmap에 복사하려고합니다. 이것은 지금까지 내 코드입니다BitmapSource에서 WritableBitmap으로 복사
: "값 예상 범위를 벗어 ArgumentException이가."
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();
내가 얻을 CopyPixels
의 줄에
row.PixelHeight * row.BackBufferStride
을 row.PixelHeight * row.PixelWidth
으로 바꾸려고 시도했지만 값이 너무 낮다는 오류가 표시됩니다.
CopyPixels
의 과부하를 사용하여 단일 코드 예제를 찾을 수 없으므로 도움을 요청하고 있습니다.
감사합니다.
감사! 저는 BitmapSource에서 WritableBitmap으로 직접 복사 할 수 있기를 바랬습니다 ... 이제 CopyPixels의 이러한 과부하가 실제로해야 할 일이 무엇인지 궁금합니다. –
사각형 오버로드로 비트 맵 이미지가 Int32Rect로 복사되므로 너무 유용하지 않습니다. WriteableBitmap에 전달하십시오. 정말 짧은 것을 원하고 전체 이미지를 복사하려면 : * WriteableBitmap target = 새 WriteableBitmap (Pic1.Source as BitmapSource); Pic2.Source = target; * –
그리고 BitmapSource의 일부만 원한다면 (비교적 작은 높이와 같은 너비의 사각형이 필요합니다)? –