¿Cómo puedo networkingucir la calidad / tamaño de la image en el iPhone objective-c?

Tengo una aplicación que permite al usuario tomar una foto con su iPhone y usarla como image de background para la aplicación. Utilizo UIImagePickerController para permitir que el usuario tome una image y establezca la image UIImageView background en el object UIImage devuelto.

 IBOutlet UIImageView *backgroundView; -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { backgroundView.image = image; [self dismissModalViewControllerAnimated:YES]; } 

Todo esto funciona bien. ¿Cómo puedo networkingucir el tamaño del UIImage a 480×320 para que mi aplicación pueda ser eficiente en memory? No me importa si pierdo la calidad de image.

Gracias por adelantado.

Puede crear un context de charts, dibujar la image en la escala deseada y usar la image retornada. Por ejemplo:

 UIGraphicsBeginImageContext(CGSizeMake(480,320)); CGContextRef context = UIGraphicsGetCurrentContext(); [image drawInRect: CGRectMake(0, 0, 480, 320)]; UIImage *smallImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

Sé que esta pregunta ya está resuelta, pero solo si alguien (como yo lo hice) quiere escalar la image manteniendo la relación de aspecto, este código podría ser útil:

 -(UIImage *)resizeImage:(UIImage *)image toSize:(CGSize)size { float width = size.width; float height = size.height; UIGraphicsBeginImageContext(size); CGRect rect = CGRectMake(0, 0, width, height); float widthRatio = image.size.width / width; float heightRatio = image.size.height / height; float divisor = widthRatio > heightRatio ? widthRatio : heightRatio; width = image.size.width / divisor; height = image.size.height / divisor; rect.size.width = width; rect.size.height = height; if(height < width) rect.origin.y = height / 3; [image drawInRect: rect]; UIImage *smallImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return smallImage; } 

Use contentOfFile y asegúrese de que todas sus imágenes sean .png. Apple está optimizado para png.

Oh, use el método contentOfFile no el nombre imageName. Varias razones para eso. Las imágenes que trae memory en ImageName permanecieron en la memory incluso después de que se llama [release].

No preguntes por qué. La manzana me lo dijo.

Roydell Clarke