Частичный скриншот и потеря качества изображения
Я печатаю частичный скриншот для ролика камеры, электронной почты, смс, 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)
Полученный скриншот был низкого качества.
Я исследовал в течение нескольких часов и обнаружил, что у нескольких людей есть похожая проблема. Я не могу придумать, как изменить решение, данное им для моей проблемы.
Мне удалось найти полуфикс. Я изменился:
UIGraphicsBeginImageContext(size)
в
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size,true,2.0)
что существенно увеличивает мой скриншот в 2,0 раза
Это, кажется, дает мне более четкое / лучшее качество частичного скриншота, хотя изображение больше, чем я предполагал.
Могу ли я применить другое решение, которое может быть более подходящим?
Спасибо!