Estoy tratando de dibujar una imagen usando el método UIImage
drawInRect:
. Aquí está el código:UIImage's drawIntegro: suaviza la imagen
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 imagen resultante es borrosa. Aquí está la imagen resultante (en el lado derecho) en comparación con la imagen de origen (en el lado izquierdo):
He intentado tanto CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), NO)
CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), NO)
pero esto no ha solucionado el problema.
¿Alguna idea?
Gracias de antemano.
No recomendaría comprobar la igualdad de flotación usando '' ==. Todo lo que tienes que hacer es establecer la escala en '0.f', y el framework se encargará del resto. (ver http://stackoverflow.com/questions/2765537/how-do-i-use-the-nsstring-draw-functionality-to-create-a-uiimage-from-text) – Mazyod
¡Muchas gracias! Esto resuelve el problema. 'if ([UIScreen instancesRespondToSelector: @selector (scale)])' - ¿esta línea es compatible con iOS3? La propiedad 'scale' se admite a partir de iOS 4.0. – tonytony
@Mazyod ¿Tengo razón al entender que '0.0f' hará que la estructura maneje la escala correcta, independientemente de si es retina o no retina en el dispositivo currículo? – Timo