Ios 从square AVCaptureVideoPreviewLayer获取图片

Ios 从square AVCaptureVideoPreviewLayer获取图片,ios,objective-c,ios6,avfoundation,Ios,Objective C,Ios6,Avfoundation,所以我要做的是创建一个自定义图像选择器,我使用的是一个320 X 320 AVCaptureVideoPreviewLayer,当我拍照时,我想得到预览层中实际看到的图像,但是,当我使用captureStillImageAsynchronouslyFromConnection:completionHandler:拍摄照片时,我得到的是一张大小为2448 X 3264的普通图像。那么,最好的方法是什么,让这个图像变成一个320 x 320的正方形图像,就像在预览层中看到的那样,而不会弄乱它?有没有

所以我要做的是创建一个自定义图像选择器,我使用的是一个320 X 320 AVCaptureVideoPreviewLayer,当我拍照时,我想得到预览层中实际看到的图像,但是,当我使用
captureStillImageAsynchronouslyFromConnection:completionHandler:
拍摄照片时,我得到的是一张大小为2448 X 3264的普通图像。那么,最好的方法是什么,让这个图像变成一个320 x 320的正方形图像,就像在预览层中看到的那样,而不会弄乱它?有没有正确的方法™ 这样做?此外,我正在使用
AVCaptureVideoPreviewLayer
videoGravity
属性的
AVLayerVideoGravityResizeAspectFill
,如果相关的话

您是否尝试过变换图像

尝试使用
CGAffineTransformMakeScale(,)
缩小图像。你会变魔术!如果你学过线性代数,你应该回忆一下你的标准变换矩阵。我还没有将其用于图像,所以我不确定这是否适用于像素

你也可以试试

// grab the original image
    UIImage *originalImage = [UIImage imageNamed:@"myImage.png"];
    // scaling set to 2.0 makes the image 1/2 the size. 
    UIImage *scaledImage = 
                [UIImage imageWithCGImage:[originalImage CGImage] 
                              scale:(originalImage.scale * 2.0)
                                 orientation:(originalImage.imageOrientation)];

您可以在哪里更改比例因子

嗨,您的问题有答案吗?我们的情况完全相同。