在我的应用程序中,我可以从相机拍摄照片并将其显示在图像视图中,但我想要做的是重新缩放/调整图像的分辨率,使其不那么大而且不会占用应用程序中有很多内存。
以下是我用于在imageview中显示图片的代码:
image = [info objectForKey:UIImagePickerControllerOriginalImage];
[ImageView1 setImage:image]; // "ImageView1" name of any UImageView.
[self dismissViewControllerAnimated:YES completion:NULL];
我希望图像按比例缩小,因为图像也可以通过电子邮件发送,所以它必须很好而且很小。
答案 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
希望这会对你有所帮助。