【发布时间】:2015-03-05 15:27:41
【问题描述】:
我正在尝试在 iOS 上创建自定义相机体验,以下代码 sn-p 是我所得到的。基本上我想要通常的相机视图(即使用以下按钮:捕获、闪光、网格、前/后、取消)。但是普通相机和我的唯一区别是我想要预览表面的正方形;不是矩形。然后,您所见即所得(所见即所得),因此无需裁剪;因为用户首先会拍一张方形照片。
我也一直在查看库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并稍微自定义一下?跨度> -
只要我能很好地控制正在发生的事情,任何一个都可以。我也一直在研究 Picker 选项;但似乎一致认为这是一种较差的方法;这就是为什么我在过去几天一直在研究“从头开始”的方法。
-
感谢您的链接。我会看看他们。
-
小世界:我已经试过AVCam了。但是当我尝试将情节提要中的
AVCamPreviewView视图调整为正方形时,它本身就变成了正方形;但是,在它内部是一个较小的矩形,实际图像显示在该矩形中。你知道如何让实际图像填充正方形(即调整大小的AVCamPreviewView)吗?还是我不应该调整AVCamPreviewView本身的大小?谢谢。