这是我在我的应用中拍摄部分屏幕截图的代码!屏幕截图大小正是我想要的,但是当我在相机胶卷中将其拉出时,图像看起来没有焦点而不是我想要的质量。我写的代码有什么问题?
@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)
}
答案 0 :(得分:0)
使用UIGraphicsBeginImageContextWithOptions
并传递0作为比例。
根据UIGraphicsBeginImageContext
的文档:
此函数等效于调用UIGraphicsBeginImageContextWithOptions函数,其中opaque参数设置为NO,比例因子为1.0。
以下介绍UIGraphicsBeginImageContextWithOptions
的比例因子参数:
要应用于位图的比例因子。如果指定值0.0,则比例因子将设置为设备主屏幕的比例因子。
换句话说,在iPhone 6等视网膜设备上,iPhone 6 Plus上的原生比例因子为2或3。传递0作为比例参数将为当前设备选择正确的比例因子。