0

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

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

大小只是一个例子。

我向服务器发送少量信息,但我必须考虑以下事项:

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

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

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

4

2 回答 2

1

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

来自苹果文档:

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

您可以使用任一转换 UIImage

NSData * UIImagePNGRepresentation ( UIImage *image );

或者

NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality );
于 2012-01-30T12:53:49.857 回答
1

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

NSData *imageData = UIImageJPEGRepresentation(myUIImage, compressionQuality);

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

希望这可以帮助。:)

于 2012-01-30T12:54:40.670 回答