本工程实现截取当前屏幕功能。
(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)这时我们运行程序,程序显示了我们自定义的图片。然后再来看图库:
可见截屏功能已经实现。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。