Захватить часть экрана iphone - PullRequest
1 голос
/ 27 марта 2012

Я использую этот код для захвата моего экрана.

        CGImageRef screen = UIGetScreenImage();
    UIImage* image = [UIImage imageWithCGImage:screen];
    CGImageRelease(screen);
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

этот код занимает весь экран.мне нужно только немного ... CGRect rect = CGRectMake (0,0,100,100);

Могу ли я передать любой параметр, чтобы получить его?

спасибо!

Ответы [ 3 ]

4 голосов
/ 27 марта 2012

Вы также можете определить новый контекст для нужного размера прямоугольника:

CGRect rect = CGRectMake (0,0,100,100);
UIGraphicsBeginImageContext(rect);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(screenshot, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

Примечание: вам нужно добавить QuartzCore в импорт:

#import <QuartzCore/QuartzCore.h>

, и вы можете получить основнойпросмотр с:

UIView *view = [[UIApplication sharedApplication].keyWindow rootViewController].view
1 голос
/ 27 марта 2012

Используйте этот код для захвата экрана и автоматически сохраните в библиотеке изображений на устройстве iphone.

 UIGraphicsBeginImageContext(self.view.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
1 голос
/ 27 марта 2012

Звучит так, будто вы просто хотите или должны обрезать свой UIImage.

Проверьте код в этом связанном вопросе и посмотрите, поможет ли он вам:

Как обрезатьUIImage

...