픽셀을 새 비트 맵으로 수동으로 복사해야합니다. 그래서 카메라가 수평이고 새로운 너비가 높이와 같아 지도록 이미지의 왼쪽 부분을 잘라 내고 싶다면 다음과 같은 코드가 작동합니다 (이 코드는 테스트하지 않았지만 100 % 정확하지는 않지만, 기본 아이디어를 제공해야합니다) :
WriteableBitmap SquareImage(WriteableBitmap srcBitmap)
{
int[] srcData = srcBitmap.Pixels;
int[] destData = new int[srcBitmap.PixelHeight * srcBitmap.PixelHeight];
for (int row = 0; row < srcBitmap.PixelHeight; ++row)
{
for (int col = 0; col < srcBitmap.PixelHeight; ++col)
{
destData[(row * srcBitmap.PixelHeight) + col] = srcData[(row * srcBitmap.PixelWidth) + col];
}
}
WriteableBitmap squareBitmap = new WriteableBitmap(srcBitmap.PixelHeight, srcBitmap.PixelHeight);
destData.CopyTo(squareBitmap.Pixels, 0);
return squareBitmap;
}
출처
2012-06-02 04:25:06
Jon
당신은 WritableBitmap을 사용해야합니다. –