gpt4 book ai didi

ios - 在 iOS 上创建具有方形 View 的自定义相机

转载 作者:技术小花猫 更新时间:2023-10-29 11:20:08 27 4
gpt4 key购买 nike

我正在尝试在 iOS 上创建自定义相机体验,以下代码片段是我所获得的。基本上我想要通常的相机 View (即使用以下按钮:捕捉、闪光灯、网格、前/后、取消)。但是普通相机和我的唯一区别是我想要预览表面的正方形;不是矩形。然后,所见即所得 (WYSIWYG),无需裁剪;因为用户一开始会拍一张方形照片。

图书馆我也一直在看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上单 View 项目中唯一的自定义代码

最佳答案

您有两种选择来做您想做的事,要么坚持使用并自定义 UIImagePickerController,要么使用 AVFoundation 创建您自己的。

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

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

如果选择最后一个选项,我想提一下,要使“实际相机”适合您的 previewLayer 框架,您可以将 videoGravity 设置为AVCaptureVideoPreviewLayerAVLayerVideoGravityResizeAspectFill

关于ios - 在 iOS 上创建具有方形 View 的自定义相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27824481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com