捕捉一些iPhone屏幕

时间:2012-03-27 12:50:04

标签: iphone ios uiimage screen cgimage

我正在使用此代码捕获我的屏幕。

        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 个答案:

答案 0 :(得分:4)

您还可以为所需的矩形大小定义新的上下文:

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

Nota:您需要在导入中添加QuartzCore:

#import <QuartzCore/QuartzCore.h>

您可以通过以下方式获取主视图:

UIView *view = [[UIApplication sharedApplication].keyWindow rootViewController].view

答案 1 :(得分:1)

听起来你只是想要或需要裁剪你的UIImage。

查看此相关问题中的代码,看看它是否有助于您:

How to crop the UIImage?

答案 2 :(得分:1)

使用此代码捕获屏幕并自动保存到iphone设备中的图像库。

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