2012-03-27 3 views
1

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

 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);

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

спасибо!

ответ

1

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

Заканчивать кода в этом связанный с этим вопрос и посмотреть, если это помогает вам:

How to crop the UIImage?

+0

Невозможно получить uiimage в определенном размере? – OAZ

4

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

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 
+0

Схватка на высшем уровне, как это было очень полезно, спасибо! –

1

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

UIGraphicsBeginImageContext(self.view.frame.size); 
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);