【问题标题】:iphone image resizingiphone图片大小调整
【发布时间】:2012-02-22 06:15:38
【问题描述】:

我对调整我的 iPhone 应用程序中的图像大小有疑问。因此,用户拍照或从图库中选择一张照片,然后将这张照片发送到服务器。我已经有来自this answer 的代码来调整图片大小:

UIImage * small=[self imageByScalingToSize:CGSizeMake(150,150) img:image];

大小只是一个例子。

我向服务器发送少量但我必须考虑的事情:

  • 图像必须小于或等于 150 KB,并且
  • 我读过here,当用户通过 3G 发送图像时,iphone 会自动将图像大小调整为 (800,600)。

所以我想做的是将图像大小调整为 (800,600)(这部分我已经有了),然后检查它是否超过 150k,如果是,则以某种方式减小它。

有没有一种方法可以计算图像的字节数,知道图像的大小以及其他一些数据?
我怎样才能在文件大小方面实现这种大小减小?

【问题讨论】:

    标签: iphone image image-size


    【解决方案1】:

    将您的 UIImage 转换为 NSData 和 user -length 以获取图像的字节大小。

    来自苹果文档:

    length - 返回接收器中包含的字节数。

    您可以使用任一方式转换 UIImage

    NSData * UIImagePNGRepresentation ( UIImage *image );
    

    或

    NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality );
    

    【讨论】:

    • 谢谢 我有一个问题,但我如何找到正确的compressionQuality?我通过尝试几张图像来寻找一种模式,但我就是找不到模式。有吗?像desired_img_size/current_img_size 或类似的东西???可以使用图像大小吗?谢谢
    • @vallllll 我认为没有准确的方法来计算您要查找的内容,我只是选择一个任意值并使用它。
    • thks,你可能是对的...一直在 android 中寻找相同的东西,但没有找到...
    【解决方案2】:

    你是如何上传你的图片的。您应该只是发送字节数据,iOS 不会知道它是图像并且无法调整它的大小!你有没有看过类似的东西

    NSData *imageData = UIImageJPEGRepresentation(myUIImage, compressionQuality);
    

    压缩图像并调整其大小。这将为您提供一个 NSData 对象,您可以对它进行 base64 编码并将您发送到您的服务器。还可以形成 NSData,您将可以看到图像有多大(以字节为单位)并确定它是否足够小。

    希望这会有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2017-06-18
      • 2013-02-22
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多