如何在iphone应用程序中压缩保存的图像

时间:2013-07-22 06:27:33

标签: ios iphone image image-size

我有应用程序,我捕获它工作正常的图像,但我想减少从网上搜索到的图像的大小我发现一些代码在这里

这是我的代码在捕获图像时正常工作

NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

UIImage *pickedImage = [info objectForKey:UIImagePickerControllerOriginalImage];

NSData *imageData = UIImagePNGRepresentation(pickedImage);

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

我想减少拾取图像的大小我得到了以下代码,但我没有使用它像使用newSize,但它使用原始图像压缩

UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();   

3 个答案:

答案 0 :(得分:0)

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

您可以使用这些代码行调用此函数来获取压缩图像。

    CGSize firstSize = CGSizeMake(210.0,210.0);
    UIImage *compImage=[mainclass imageWithImage:image scaledToSize:firstSize];

答案 1 :(得分:0)

你能做的就是......

NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

UIImage *pickedImage = [info objectForKey:UIImagePickerControllerOriginalImage];

 CGSize sizeCropped = CGSizeMake(602, 450);//you can adjust any size here...

 pickedImage = [yourclassname imageWithImage:pickedImage scaledToSize:sizeCropped];//call below function...




+ (UIImage*)imageWithImage:(UIImage*)image
          scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;
 }

让我知道它是否有效!!!!

快乐的编码!!!!!

答案 2 :(得分:0)

如果你想用新的尺寸保存那个新的图像,那么在你的代码将图像添加到带有波纹线的库中之后...

UIImageWriteToSavedPhotosAlbum(UIImage *image, id completionTarget, SEL completionSelector, void *contextInfo);

<强> EX:

UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil);