【问题标题】:Make image the same as camera view使图像与相机视图相同
【发布时间】:2015-09-21 09:13:19
【问题描述】:

我正在使用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)

但是在拍摄图像后,我在相机层看到的视图与照片不同(照片需要更多的视图,所以它更大)

我想制作一张照片,并使用整个全屏覆盖输出相同比例和视图的照片。 能给点建议吗?

【问题讨论】:

  • 所以我需要在相机中看到的相同图像,但不是全尺寸
  • 您有没有机会找到解决方案?我有同样的问题

标签: ios swift camera uiimagepickercontroller


【解决方案1】:

我在我的一个项目中通过此链接获得了帮助:UIImagePickerController doesn't fill screen

希望这会有所帮助。

【讨论】:

  • 我看到了这个答案,并用它来填满全屏,但还有另一个问题 - 我拍摄的照片被缩放,而我得到的图像不是,所以它们是不同的跨度>
【解决方案2】:

诀窍是让提供视频预览的视图不会过度扫描屏幕,并且具有正确的纵横比。

我的猜测是有两个地方你必须看看:

  1. AVCaptureVideoPreviewLayer 的 previewLayer-property。
  2. 您的AVCaptureSession 的会话预设

如果后者是 AVCaptureSessionPresetPhoto 类型,则您的帧计算似乎没问题(因为这是 4:3 格式),但请仔细检查此位。

previewLayer 应为 AVLayerVideoGravityResize,因为这会填充预览以适合您已正确调整大小的视图。

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多