iphone pixelado UIImageView

He estado teniendo problemas para renderizar imágenes con la class UIImageView. La pixelación parece ocurrir principalmente en los bordes de la image que trato de mostrar.

He intentado cambiar la propiedad 'Render con borde antialiasing' en vano.

Los files de image contienen imágenes que son más grandes de lo que aparecerá en la pantalla.

Parece ser un verdadero lío con la calidad de la image y luego mostrarla. Traté de publicar imágenes aquí, pero StackOverflow me está negando ese privilegio. Entonces, aquí hay un enlace a lo que está sucediendo.

http://i.imgur.com/QpUOTOF.png

El sol en esta image es el problema del que estoy hablando. ¿Algunas ideas?

El cambio de tamaño de la image en time real es rápido y de baja calidad. Para las imágenes agrupadas, vale la pena el espacio extra para include versiones networkingucidas. Para get imágenes descargadas, puede get mejores resultados cambiando el tamaño con Core Graphics en un nuevo UIImage antes de configurar la propiedad de la image.

 CGSize newSize = CGSizeMake(newWidth, newHeight); UIGraphicsBeginImageContextWithOptions(newSize, // context size NO, // opaque? 0); // image scale. 0 means "device screen scale" CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetInterpolationQuality(context, kCGInterpolationHigh); [bigImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

Use el siguiente método de uso para get altura y ancho específicos con image

 + (UIImage*)resizeImage:(UIImage*)image withWidth:(int)width withHeight:(int)height { CGSize newSize = CGSizeMake(width, height); float widthRatio = newSize.width/image.size.width; float heightRatio = newSize.height/image.size.height; if(widthRatio > heightRatio) { newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio); } else { newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio); } UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } 

Este método devuelve NewImage , con el tamaño específico que especificó.

¿Qué tan grande es tu image y cuál es el tamaño de imageView? No confíe en UIImageView para escalarlo por usted. Probablemente necesites cambiar el tamaño manualmente. Esto también sería un poco más eficiente de memory.

Utilizo categorías como estas: >>> github link <<<

para hacer el cambio de tamaño de la image.

Esto también le brinda otra function agradable para las esquinas networkingondeadas, etc.

También tenga en count que necesita un borde transparente en el borde de una image si desea rotarlo para evitar el alias.