0

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

这是我用于在 imageview 中显示图像的代码:

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

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

4

1 回答 1

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

希望这会帮助你。

于 2013-05-24T11:53:08.400 回答