我想只捕获视频预览图层中的图像。目前,我这样设置:
[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
不起作用。无论如何要捕获预览图层中的内容吗?
答案 0 :(得分:0)
这不是预览图层应该做的事情。如果需要拍照,则应使用stillImageOutput或数据缓冲区。根据您捕获样品的方式,您应该注意相机的生长与设备方向的关系。 jpg图像的方向保存在名为EXIF的元数据字典中 Apple有不同的样本code显示如何进行静态图像捕获。 这里还有一篇关于EXIF orientation的文章。