为什么我的局部屏幕快速模糊?

时间:2016-02-26 06:42:00

标签: swift

这是我在我的应用中拍摄部分屏幕截图的代码!屏幕截图大小正是我想要的,但是当我在相机胶卷中将其拉出时,图像看起来没有焦点而不是我想要的质量。我写的代码有什么问题?

    @IBAction func screenShotButton(sender: Any Object) {
       let top: CGFloat = 196
       let bottom: CGFloat = 197
       let size = CGSize(width: view.frame.size.width, height: view.frame.size.height - top - bottom)
       UIGraphicsBeginImageContext(size)
    let context = UIGraphicsGetCurrentContext()!
    CGContextTranslateCTM(context, 0, -top)
    view.layer.renderInContext(context)
    let snapshot = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    UIImageWriteToSavedPhotosAlbum(snapshot, nil, nil, nil)
    }

1 个答案:

答案 0 :(得分:0)

使用UIGraphicsBeginImageContextWithOptions并传递0作为比例。

根据UIGraphicsBeginImageContext的文档:

  

此函数等效于调用UIGraphicsBeginImageContextWithOptions函数,其中opaque参数设置为NO,比例因子为1.0。

以下介绍UIGraphicsBeginImageContextWithOptions的比例因子参数:

  

要应用于位图的比例因子。如果指定值0.0,则比例因子将设置为设备主屏幕的比例因子。

换句话说,在iPhone 6等视网膜设备上,iPhone 6 Plus上的原生比例因子为2或3。传递0作为比例参数将为当前设备选择正确的比例因子。