2015-02-03 1 views
1

Я использую AVCapture для захвата изображений с камеры. Все работает отлично, за исключением этой проблемы.Как захватить только видимое изображение с помощью AVCapture iOS

Мне нужно, чтобы последнее снятое изображение было таким же, как и в камере. Но изображение показывает больше области (что не так заметно в камере). Как я могу получить то же видимое изображение, что и final stillImageOutput?

Любая помощь будет высоко оценена.

+0

более области вы имеете в виду «черные границы вокруг изображения» или фактический визуальный контент, который не отображается во время съемки? – joakim

+0

Я имею в виду фактический визуальный контент, который не отображается. – Thangavel

ответ

0

используйте ваше представление/имя объекта изображения вместо 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; 
} 
+0

Спасибо. Но я не хочу снова перерисовывать изображение. Мне нужно получить изображение прямо с камеры. – Thangavel

+0

Я выяснил проблему. Проблема заключается в том, что AVCapture использовал слой предварительного просмотра в качестве уровня видео. Вы можете видеть разницу при переключении с режима фото в режим видеозахвата на приложение для iPhone. – Thangavel