Captura de pantalla parcial y pérdida de calidad de imagen

Estoy imprimiendo una captura de pantalla parcial para cámara, correo electrónico, sms, FB, Twitter, etc. Pantalla parcial seleccionada: 100 píxeles desde arriba, 100 desde abajo.

Usé el siguiente código:

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)

La captura de pantalla resultante fue de mala calidad.

Investigué durante horas y descubrí que varias personas tienen un problema similar. No puedo entender cómo modificar las soluciones que se les dieron a mi problema.

Me las arreglé para encontrar un semi-arreglo. Cambié:

UIGraphicsBeginImageContext(size)

a

UIGraphicsBeginImageContextWithOptions(imageView.bounds.size,true,2.0)

que esencialmente amplía mi captura de pantalla por un factor de 2.0

Esto parece darme una captura de pantalla parcial más nítida / de mejor calidad, aunque la imagen es más grande de lo que pretendía.

¿Hay otra solución que pueda aplicar que podría ser más apropiada?

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta