这些需要两种不同的技术。
了解两者之间的区别很重要。
首先,修改视频预览图层,需要调整视频重力。请注意,在全屏情况下,可以按如下方式更改:
[斯威夫特3]
previewView.videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
Run Code Online (Sandbox Code Playgroud)
本质上,您正在修改取景器的范围。但是,您不会对拍摄的照片提供任何效果。
现在,对于填充到正方形的情况,您需要定义图层边界,然后使用AVLayerVideoGravityResize。
至于修改拍摄的照片:
我的方法只是获取返回的图像数据,将其转换为 UIImage,然后执行裁剪操作。事实上,您拍摄的照片将始终是标准的 iPhone 分辨率和宽高比。您必须获取图像数据并在某个时候对其进行转换,以消除边界。
事实上,我不再在本地这样做,因为这很麻烦。如果您正在与 REST api 进行通信,我会考虑在服务器端执行裁剪操作——这对用户来说同样无缝且开销更少。当然,这可能不适合您的情况。
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |