我正在使用UIImagePickerController
拍照。对于全尺寸照片,我使用此方法
var cameraAspectRatio : CGFloat = 4.0 / 3.0;
var imageWidth = floorf(Float(screenSize.width * cameraAspectRatio));
var data = Float(screenSize.height)/imageWidth
var scale = CGFloat(ceilf((data * 10.0) / 10.0))
cameraViewTransform = CGAffineTransformMakeScale(scale, scale)
但是在拍摄图像之后,我在相机图层中看到的视图与照片不同(照片需要更多视图,所以它更大)
我想制作一张照片,并使用整个全屏覆盖图输出相同比例和视图的照片。 你能建议吗?
答案 0 :(得分:0)
我在我的一个项目中从这个链接中获得了帮助:UIImagePickerController doesn't fill screen
希望这有帮助。
答案 1 :(得分:0)
诀窍是让视频提供视频预览,而不是过度扫描屏幕,并保持正确的宽高比。
我的猜测会有两个地方你需要看看:
AVCaptureVideoPreviewLayer
的预览层属性。AVCaptureSession
会话预设如果后者的类型为AVCaptureSessionPresetPhoto
,那么您的帧计算似乎没问题(因为这是格式4:3),但请仔细检查此位。
previewLayer
应为AVLayerVideoGravityResize
,因为这会填充预览以适合您已正确调整大小的视图。