3

所以我正在做的是创建一个自定义图像选择器,我有一个 320 X 320 AVCaptureVideoPreviewLayer 我正在使用,当我拍照时,我想获得预览层中实际看到的 UIImage,但是什么当我拍摄照片时,我得到的captureStillImageAsynchronouslyFromConnection: completionHandler:是尺寸为 2448 X 3264 的普通图像。那么,将这个图像制作成 320 x 320 方形图像的最佳方法是什么,就像在预览层中看到的那样而不会弄乱它?是否有正确的方法来做到这一点?另外,如果相关的话,我正在使用AVLayerVideoGravityResizeAspectFillvideoGravity属性。AVCaptureVideoPreviewLayer

4

1 回答 1

0

您是否尝试过转换图像?

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

你也可以试试

// 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)];

您可以在其中更改比例因子

于 2015-05-20T22:25:24.173 回答