【问题标题】:Rescale image in imageview在 imageview 中重新缩放图像
【发布时间】:2013-05-24 11:45:51
【问题描述】:

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

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

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

我想要缩小图像,因为图像也可以通过电子邮件发送,所以它必须美观且小巧。

【问题讨论】:

    标签: uiimageview uiimage uiimagepickercontroller


    【解决方案1】:

    你可以试试这个代码:

    + (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

    希望对你有帮助。

    【讨论】:

    猜你喜欢
    • 2020-06-18
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多