2

我正在使用 WP7 相机示例,在捕获图像时遇到了问题。现在它使用标准 480(w) x 800(h) 拍照。我想要做的是将图片作为一个正方形,因为我的应用程序要求图像是一个完美的正方形。

我将 VideoBrush 调整为仅显示 480x480,并且最初拍摄的图像似乎拍摄了一张方形照片,但是当您在图片中心内查看时,它是一张普通的 480x800 肖像。

有谁知道如何设置相机拍摄方形照片或裁剪顶部和底部?

4

1 回答 1

4

您需要手动将像素复制到新位图。因此,如果相机是水平的,并且您希望裁剪图像的左侧部分以使新的宽度等于高度,那么这样的事情就可以了(我没有测试这段代码,但即使它不是 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-02T04:25:06.970 回答