如何在iphone sdk中压缩相机拍摄的图像?

时间:2010-10-08 10:33:17

标签: objective-c

我从地址簿中获取联系人列表,其中一些联系人的图像是用相机拍摄的,它们的尺寸非常大。我正在以3x3行和列格式显示联系人及其图像。问题是由于图像的巨大尺寸需要时间来加载图像。任何人都建议我如何压缩它们。 我尝试以某种方式压缩它们:

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];   
    }
}

尽管需要花时间加载。

任何人的帮助将不胜感激。

感谢所有人, Monish。

1 个答案:

答案 0 :(得分:11)

您可以使用以下代码行调整iphone相机拍摄的图像的大小

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

然后像这样调用这个方法

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