5

我正在使用 AVCam 捕捉图像,但现在我想展示方形相机并拍摄方形图像。我该怎么做?

非常感谢!

4

1 回答 1

0

这些需要两种不同的技术。

了解两者之间的区别很重要。

首先,修改视频预览层,需要调整视频重力。请注意,这可以在全屏的情况下进行如下更改:

[斯威夫特 3]

previewView.videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill

本质上,您正在修改取景器的范围。但是,您不会对拍摄的照片产生任何影响。

现在,对于填充到正方形的情况,您需要定义图层边界,然后使用AVLayerVideoGravityResize.

至于修改拍摄的照片:

我的方法是简单地获取返回的图像数据,将其转换为 UIImage,然后执行裁剪操作。事实是,您拍摄的照片将始终是标准的 iPhone 分辨率和纵横比。您必须获取图像数据并在某个时候对其进行转换以消除边界。

事实上,我不再在本地这样做,因为这很麻烦。如果您使用 REST api 进行通信,我会考虑在服务器端执行裁剪操作——这对用户来说同样无缝且开销更少。当然,这可能不适合您的情况。

于 2016-08-16T21:21:23.037 回答