ios - 从方形 AVCaptureVideoPreviewLayer 获取图片

标签 ios objective-c ios6 avfoundation

所以我正在做的是创建一个自定义图像选择器,我有一个正在使用的 320 X 320 AVCaptureVideoPreviewLayer,当我拍照时,我想获得预览层中实际看到的 UIImage ,但是当我使用 captureStillImageAsynchronouslyFromConnection: completionHandler: 拍照时,我得到的是一张尺寸为 2448 X 3264 的普通图像。那么将此图像制作成 320 x 320 正方形的最佳方法是什么在预览层中看到的图像没有弄乱?是否有 Right Way™ 可以做到这一点?此外,如果相关的话,我将 AVLayerVideoGravityResizeAspectFill 用于 AVCaptureVideoPreviewLayervideoGravity 属性。

最佳答案

你试过变换图像吗?

尝试使用 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)];

在哪里你可以改变比例因子

关于ios - 从方形 AVCaptureVideoPreviewLayer 获取图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17375244/

相关文章:

ios6 - UICollectionView 页眉/页脚引用大小崩溃

ios - 如何从 UIImageView 压缩图像?

IOS 文件系统安全

ios - Xamarin 表单 IOS 项目中的图标清晰度不佳

ios - UITableViewCell subview 的 IBOutlet 为 (NULL)

ios - Xcode 6 中的配置文件问题(重复)

objective-c - 难以理解 Objective-C 中的指针

ios - 这是对属性使用 self 属性的正确方法吗?

ios - 我可以关闭当前未使用的 UIAppFonts 的文件描述符吗?

ios - 更改字体后在 UITextField 上调用 sizeToFit 在 iOS 7.1 上无法正常工作