Частичный скриншот и потеря качества изображения

Я печатаю частичный скриншот для ролика камеры, электронной почты, смс, 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 раза

Это, кажется, дает мне более четкое / лучшее качество частичного скриншота, хотя изображение больше, чем я предполагал.

Могу ли я применить другое решение, которое может быть более подходящим?

Спасибо!