UIImage与绘图:4-截屏
在游戏应用中,通常会提供截屏的功能,用来记录辉煌的游戏记录。UIKit框架中,也提供了简单高效的截屏方法,以及保存截屏文件的方法,供开发者直接调用。
截屏的实现思路
通常情况下,在应用中添加截屏功能需要有如下两个步骤:
第一步,获取当前屏幕截屏图片。在UIView类中,提供了drawViewHierarchyInRect: afterScreenUpdates方法,利用该方法可以实现对任何View视图的截取图像操作。在使用之前,需要提前准备绘图上下文。
- (BOOL)drawViewHierarchyInRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates ;
第二步,保存图片到本地相册。在UIImagePickerController类中,封装了一个专门用于保存图片到相册的函数UIImageWriteToSavedPhotosAlbum。通过该函数可以把UIImage图片对象存放到手机相册中。
UIKIT_EXTERN void UIImageWriteToSavedPhotosAlbum(UIImage *image, __nullable id completionTarget, __nullable SEL completionSelector, void * __nullable contextInfo) ;
示例代码
下方的代码实现了,当应用启动并显示第一个控制器视图时,会自动截屏并保存到相册功能。
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
//开启一个图形上下文
UIGraphicsBeginImageContext(self.view.bounds.size);
//截屏
if ([self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:NO]){
NSLog(@"Successfully draw the screenshot."); }
else{
NSLog(@"Failed to draw the screenshot.");
}
//获取当前上下文
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
//关闭上下文
UIGraphicsEndImageContext();
//保存到相册
UIImageWriteToSavedPhotosAlbum(screenshot, self, nil, nil);
}
https://github.com/99ios/14.2.4
文章发布时间为: September 30th , 2016 at 07:13 pm
最后编辑时间为: September 15th , 2017 at 05:49 am
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 15th , 2017 at 05:49 am
本文由 99ios 创作,转载请注明出处