我正在为相机胶卷,电子邮件,短信,FB,Twitter等打印部分屏幕截图...部分屏幕选择 - 顶部100像素,底部100像素.
我使用以下代码:
let top: CGFloat = 100
let bottom: CGFloat = 100
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)
Run Code Online (Sandbox Code Playgroud)
结果截图质量很差.
我研究了几个小时,发现有几个人有类似的问题.我不能完全理解为我的问题修改解决方案.
我确实设法找到了一个半修复程序.我变了:
UIGraphicsBeginImageContext(size)
Run Code Online (Sandbox Code Playgroud)
至
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size,true,2.0)
Run Code Online (Sandbox Code Playgroud)
这实际上是我的截图缩放了2.0倍
这似乎给我一个更清晰/更好质量的部分截图,虽然图像比我想象的大.
我可以申请哪种解决方案可能更合适吗?
谢谢!