本工程实现截取当前屏幕功能。
(1)新建一个“Single View Application”工程,取名为“Screenshot”:
(2)点击工程文件,切换到“Build Phase”,展开“Link Binary With Libraries”,点击“+”号添加“QuartzCore.framework”框架:
(3)为让效果更明显,我们可以自定义背景图。为养成一种良好的习惯,我们在项目文件夹中新建一个名为“Resource”的资源文件夹,用于存放我们添加到项目的图片资源。向其中导入一张图片。
(4)右键单击,在工程目录中选择我们刚新建的文件夹。
(5)设置背景图为我们刚导入的图片。我们只作测试用,所以我们可以在“ViewDidLoad”中设置背景衅图。
在ViewController.m文件中导入头文件:
#import"QuartzCore/QuartzCore.h"
在头文件中添加以下两个函数:
/** 设置背景 */ - (void)setBgImg; /** 截屏 */ - (void)screenshot;
在m文件中实现上面这两个函数:
- (void)setBgImg{ UIImageView *imgV = [[UIImageView alloc] initWithImage:[UIImage p_w_picpathNamed:@"QQ20130728-7.png"]]; [self.view addSubview:imgV]; } - (void)screenshot{ //将整个self.view大小的图层形式创建一张图片p_w_picpath UIGraphicsBeginImageContext(self.view.bounds.size); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage*p_w_picpath=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); //然后将该图片保存到图片库 UIImageWriteToSavedPhotosAlbum(p_w_picpath,self,nil,nil); }
(6)最后在“ViewDidLoad”函数中引用这两个函数:
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [self setBgImg]; [self screenshot]; }
(7)在运行程序之前,我们先打开模拟器的图库看看看:
如果我们从未保存图片到图库,则可见如上图所示。
(8)这时我们运行程序,程序显示了我们自定义的图片。然后再来看图库:
可见截屏功能已经实现。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。