2010-10-08 19 views
5

Otrzymuję listę kontaktów z książki adresowej, ponieważ niektóre kontakty mają obrazy, które są robione aparatem mają bardzo duży rozmiar. Wyświetlam kontakty wraz z ich obrazami w formacie 3x3 wierszy i kolumn. Problem jest spowodowane ogromnym rozmiarem zdjęć, które zajmują czas, aby załadować obrazy. Każdy może zasugerować mi, jak je skompresować. Próbowałem ścisnąć je w taki sposób:Jak skompresować obraz zrobiony przez aparat w 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]; 
    } 
} 

Eventhough jego poświęcenie czasu, aby załadować.

Każda osoba będzie bardzo wdzięczna.

Dziękuję wszystkim, Monish.

Odpowiedz

11

Można zmienić rozmiar obrazu w aparacie iPhone przy użyciu następujących linii kodu

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

a następnie wywołać tę metodę, jak tego

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

jej naprawdę działa dobrze ... tanx dużo .. !! –