捕获视频预览图层中存在的图像

时间:2014-05-25 05:26:52

标签: ios uiimage avcapturesession avcapture

我想只捕获视频预览图层中的图像。目前,我这样设置:

[self setCaptureManager:[[[CaptureSessionManager alloc] init] autorelease]];
[[self captureManager] addVideoInputFrontCamera:YES]; // set to YES for Front Camera, No for Back camera
[[self captureManager] addStillImageOutput];

[[self captureManager] addVideoPreviewLayer];
CGRect layerRect = [[[self view] layer] bounds];
[[[self captureManager] previewLayer] setBounds:CGRectMake(0, 0, 320, 400)];//was layerRect
[[[self captureManager] previewLayer] setPosition:CGPointMake(CGRectGetMidX(layerRect),CGRectGetMidY(layerRect))];// was CGPointMake(CGRectGetMidX(layerRect),CGRectGetMidY(layerRect))

[[[self view] layer] addSublayer:[[self captureManager] previewLayer]];

就目前而言,预览图层代表我想要捕捉的内容,但相机也可以捕捉到这些边界之外的内容。我之后无法拍照并裁剪,因为图像没有朝上,因此CGImageRef不起作用。无论如何要捕获预览图层中的内容吗?

1 个答案:

答案 0 :(得分:0)

这不是预览图层应该做的事情。如果需要拍照,则应使用stillImageOutput或数据缓冲区。根据您捕获样品的方式,您应该注意相机的生长与设备方向的关系。 jpg图像的方向保存在名为EXIF的元数据字典中 Apple有不同的样本code显示如何进行静态图像捕获。 这里还有一篇关于EXIF orientation的文章。