新需求需要截屏,这里简单说一下截屏的代码。常用的截图方法如下所示:
UIGraphicsBeginImageContext(CGSizeMake(100,100 )); //currentView 当前的view 创建一个基于位图的图形上下文并指定大小为
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; //renderInContext呈现接受者及其子范围到指定的上下文
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); //返回一个基于当前图形上下文的图片
UIGraphicsEndImageContext(); //移除栈顶的基于当前位图的图形上下文
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);//然后将该图片保存到图片图
这个方法比较简单,一般都用这个方法,但是截出来的图片会模糊,如果对截图的清晰度要求比较严,那么我们需要对这个方法进行修改,如下:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(100,100 ), NO, 0.0); //currentView 当前的view 创建一个基于位图的图形上下文并指定大小为
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//renderInContext呈现接受者及其子范围到指定的上下文
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();//返回一个基于当前图形上下文的图片
UIGraphicsEndImageContext();//移除栈顶的基于当前位图的图形上下文
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);//然后将该图片保存到图片图
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale) 的参数分别代表:
CGSize size:指定将来创建出来的bitmap的大小
BOOL opaque:设置透明YES代表透明,NO代表不透明
CGFloat scale:代表缩放,0代表不缩放
创建出来的bitmap就对应一个UIImage对象