【问题标题】:downSize image from iPhone while uploading上传时从 iPhone 缩小图像
【发布时间】:2009-08-09 07:19:27
【问题描述】:

我有一个应用程序, 其中

用户从 iPhone 中选择一张图片作为照片字段,

图片上传到服务器,

图像大小可以是 1 kb 或 10 kb,也可以是 1 mb 或 10 mb。

如果图像大小超过 5mb,则图像在存储到服务器之前必须缩小到 5mb。问题是如何?这可能吗?

我使用以下代码下载图像 - 用于在加载时压缩图像,
imageDatafromPhoto = UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"],0.2);

谢谢你帮助我。

【问题讨论】:

    标签: iphone


    【解决方案1】:

    “压缩”和“重采样”是有区别的。压缩是一种使文档更小的无损方式,例如 GZip。尽管在 Objective-C 中没有任何标准接口可以帮助您做到这一点,但是有一些 NSData 扩展作为一个类别,您可以使用它来添加 GZip 压缩。

    但是,这本身并不能帮助您。 JPEG 图像往往不能很好地压缩,因此您真正想要的是重新采样 或调整图像本身。这会丢弃一些数据,使其更小但质量也更差。这是 0.2 末尾的目的 - 0.0 是您可以从库中获得的最大压缩率。您可以尝试使用连续的小数字(例如,在 for 循环中)调用它,直到获得质量可接受的图像大小。

    否则,您将不得不通过将图像绘制到具有指定大小的 CGContextDrawImage 到 CG 缓冲区(来自 CGBitmapContextCreate)来调整大小,然后从那里绘制的结果中获取新图像,然后重新开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      相关资源
      最近更新 更多