在imageview中重新缩放图像

时间:2013-05-24 11:45:51

标签: uiimageview uiimage uiimagepickercontroller

在我的应用程序中,我可以从相机拍摄照片并将其显示在图像视图中,但我想要做的是重新缩放/调整图像的分辨率,使其不那么大而且不会占用应用程序中有很多内存。

以下是我用于在imageview中显示图片的代码:

image = [info objectForKey:UIImagePickerControllerOriginalImage];
[ImageView1 setImage:image];    // "ImageView1" name of any UImageView.
[self dismissViewControllerAnimated:YES completion:NULL];

我希望图像按比例缩小,因为图像也可以通过电子邮件发送,所以它必须很好而且很小。

1 个答案:

答案 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;
}

就图像的存储而言,与iPhone一起使用的最快图像格式是PNG,因为它对该格式进行了优化。但是,如果您要将这些图像存储为JPEG,则可以执行UIImage并执行以下操作:

NSData *dataForJPEGFile = UIImageJPEGRepresentation(theImage, 0.6);

这将创建一个NSData实例,其中包含60%质量设置的JPEG图像的原始字节。然后可以将该NSData实例的内容写入磁盘或缓存在内存中。

您也可以参考此链接:UIImage: Resize, then Crop

希望这会对你有所帮助。