最近项目遇到截屏功能,截屏时图片太模糊,现做以下是处理方法。
直接上代码:
[selfsaveScreenshotToPhotosAlbum:[selfcaptureScreen]];
//截屏操作
- (UIImage *) captureScreen {
UIWindow *keyWindow = [[UIApplicationsharedApplication] keyWindow];
CGRect rect = [keyWindowbounds];
//UIGraphicsBeginImageContext(rect.size);//(ps:截图太模糊)
/*
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
opaque 透明度,不透明设为YES;
scale 缩放因子,设0时系统自动设置缩放比例图片清晰;设1.0时模糊
*/
UIGraphicsBeginImageContextWithOptions(rect.size,YES, 0.0);
CGContextRef context =UIGraphicsGetCurrentContext();
[keyWindow.layerrenderInContext:context];
UIImage *img =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
- (void)saveScreenshotToPhotosAlbum:(UIImage *)screenImage
{
UIImageWriteToSavedPhotosAlbum(screenImage,nil, nil,nil);
}