UIImage's drawInrect: suaviza la image

Estoy intentando dibujar la image usando el método drawInRect: UIImage . Aquí está el código:

 UIImage *image = [UIImage imageNamed:@"OrangeBadge.png"]; UIGraphicsBeginImageContext(image.size); [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

El problema es que la image resultante es borrosa. Aquí está la image resultante (en el lado derecho) en comparación con la image de origen (en el lado izquierdo):

Imagen de origen e imagen borrosa

He intentado tanto CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), NO) CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), NO) pero esto no solucionó el problema.

¿Algunas ideas?

Gracias por adelantado.

Si se está desarrollando en un dispositivo de retina, posiblemente el problema esté relacionado con la resolución de su context de charts. ¿Intentarías con:

 UIGraphicsBeginImageContextWithOptions(size, NO, 2.0f); 

Esto permitirá la resolución de la retina. Además, su image debe estar disponible a una resolución de 2x para que esto funcione.

Si también desea admitir dispositivos que no sean retina, puede usar:

 if ([UIScreen instancesRespondToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0f); } else { UIGraphicsBeginImageContext(newSize); }