繁体   English   中英

在iOS上创建带方形视图的自定义相机

[英]creating custom camera with square view on iOS

我正在尝试在iOS上创建自定义相机体验,以下代码片段就是我所知道的。 基本上我想要通常的相机视图(即使用以下按钮:捕捉,闪光,网格,前/后,取消)。 但普通相机与我的唯一不同之处在于我想要预览表面的正方形 ; 不是一个矩形。 然后,你所看到的就是你得到的(所见即所得),这样就不需要裁剪了; 因为用户首先会拍摄正方形照片。

我也一直在看图书馆https://github.com/danielebogo/DBCamera,但我没有看到如何自定义它到底。 有帮助吗? 谢谢。

我的代码很远:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    //Capture Session
    AVCaptureSession *session = [[AVCaptureSession alloc]init];
    session.sessionPreset = AVCaptureSessionPresetPhoto;

    //Add device
    AVCaptureDevice *device =
    [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    //Input
    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];

    if (!input)
    {
        NSLog(@"No Input");
    }

    [session addInput:input];

    //Output
    AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];
    [session addOutput:output];
    output.videoSettings =
    @{ (NSString *)kCVPixelBufferPixelFormatTypeKey : @(kCVPixelFormatType_32BGRA) };

    //Preview Layer
    AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
    UIView *myView = self.view;
    previewLayer.frame = myView.bounds;
    previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
    [self.view.layer addSublayer:previewLayer];

    //Start capture session
    [session startRunning];
}

这是Xcode上单个视图项目中唯一的自定义代码

你有两个选择来做你想做的事情,要么坚持和自定义UIImagePickerController ,要么使用AVFoundation创建自己的。

UIImagePickerController确实提供了相当多的自定义选项,这个类似的线程有一些很好的信息: 链接

如果您仍想自己制作,我建议您前往Apple文档并查看名为AVCam 链接 但是,它比你可能需要的更深入,所以我也可以推荐这个视频教程: 链接

如果要为最后的选择,我想提一提,使“实际的摄像机”适合你的框架previewLayer ,您可以设置videoGravityAVCaptureVideoPreviewLayerAVLayerVideoGravityResizeAspectFill

使用自定义相机可能会有点痛苦,但鉴于您真的能够自定义您的应用体验,它会带来好处。

最简单的方法是使用TGCameraViewController

使用此TGCameraViewController ,您可以编辑整个摄像机视图。 此外,它提供以下功能: -

  • 轻松访问相册(相机胶卷)
  • 自动闪光,关闭和开启
  • 焦点
  • 前后摄像头

您也可以参考AVCamManual:扩展AVCam以使用手动捕获文档来创建自己的自定义相机。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM