我正在使用 WP7 相机示例,在捕获图像时遇到了问题。现在它使用标准 480(w) x 800(h) 拍照。我想要做的是将图片作为一个正方形,因为我的应用程序要求图像是一个完美的正方形。
我将 VideoBrush 调整为仅显示 480x480,并且最初拍摄的图像似乎拍摄了一张方形照片,但是当您在图片中心内查看时,它是一张普通的 480x800 肖像。
有谁知道如何设置相机拍摄方形照片或裁剪顶部和底部?
我正在使用 WP7 相机示例,在捕获图像时遇到了问题。现在它使用标准 480(w) x 800(h) 拍照。我想要做的是将图片作为一个正方形,因为我的应用程序要求图像是一个完美的正方形。
我将 VideoBrush 调整为仅显示 480x480,并且最初拍摄的图像似乎拍摄了一张方形照片,但是当您在图片中心内查看时,它是一张普通的 480x800 肖像。
有谁知道如何设置相机拍摄方形照片或裁剪顶部和底部?
您需要手动将像素复制到新位图。因此,如果相机是水平的,并且您希望裁剪图像的左侧部分以使新的宽度等于高度,那么这样的事情就可以了(我没有测试这段代码,但即使它不是 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;
}