2010-10-08 10 views
5

Obtengo la lista de contactos de la Libreta de direcciones en la que algunos contactos tienen imágenes que se toman con la cámara son muy grandes. Estoy mostrando los contactos junto con sus imágenes en un formato de filas y columnas de 3x3. es debido al gran tamaño de las imágenes que toma tiempo para cargar las imágenes. ¿Alguien me puede sugerir cómo comprimirlas? Traté de comprimirlos en una forma:Cómo comprimir una imagen tomada por la cámara en iphone sdk?

if ([imageData length] > 0) 
{ 
    int len = [imageData length]; 
    if(len > 9000) 
    { 
     UIImage *theImage = [UIImage imageWithData:imageData]; 
     imageData = UIImageJPEGRepresentation(theImage,0.5); 
     printf("\n image data length in condition...%d",[imageData length]); 
     imageViewL.image = [UIImage imageWithData:imageData]; 
    } 
    else 
    { 
     imageViewL.image = [UIImage imageWithData:imageData]; 
    } 
} 

Apesar de su tiempo que se tomó para cargar.

La ayuda de cualquier persona será muy apreciada.

Gracias a todos, Monish.

Respuesta

11

puede cambiar el tamaño de la imagen capturada por la cámara iPhone mediante el uso de las siguientes líneas de código

-(UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)newSize 
{ 
    UIGraphicsBeginImageContext(newSize); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext();  
    return newImage; 
} 

y luego llamar a este método como este

UIImage *image = [self scaleImage:your image toSize:CGSizeMake(320.0,480.0)]; 
+0

Su realmente funciona bien ... mucho tanx .. !! –

Cuestiones relacionadas