如何使用AVCapture iOS捕获仅可见图像

时间:2015-02-03 10:53:18

标签: ios objective-c avcapturesession

我正在使用AVCapture从相机中捕捉图像。除了这个问题,一切正常。

我需要最终捕获的图像,就像在相机中看到的一样。但是图像显示更多区域(在相机中看起来不像)。如何获得与最终stillImageOutput相同的可见图像?

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

使用您的view / imageview对象名称而不是contentScrollview。这将帮助您渲染视图并为您提供图像。 供参考:https://charangiri.wordpress.com/2014/09/18/how-to-render-screen-taking-screen-shot-programmatically/

- (UIImage *) createScreenshotOfCompleteScreen
{
UIImage* image = nil;
UIGraphicsBeginImageContext(contentScrollview.contentSize);
{
    CGPoint savedContentOffset = contentScrollview.contentOffset;
    CGRect savedFrame = contentScrollview.frame;
    contentScrollview.contentOffset = CGPointZero;
    contentScrollview.frame = CGRectMake(0, 0, contentScrollview.contentSize.width, contentScrollview.contentSize.height);
    if ([[NSString versionofiOS] intValue]>=7)
    {
        [contentScrollview drawViewHierarchyInRect:contentScrollview.bounds afterScreenUpdates:YES];
    }
    else
    {
        [contentScrollview.layer renderInContext: UIGraphicsGetCurrentContext()];
    }
    image = UIGraphicsGetImageFromCurrentImageContext();
    contentScrollview.contentOffset = savedContentOffset;
    contentScrollview.frame = savedFrame;
}
UIGraphicsEndImageContext();
return image;
}