最近项目遇到截屏功能,截屏时图片太模糊,现做以下是处理方法。

直接上代码:

[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);
}