UIImageJPEGRepresentation应该在每个iOS设备上都一样吗?

时间:2011-09-20 00:12:08

标签: objective-c ios resize-image

我正在使用MGImageUtilities库(使用imageScaledToFitSize方法)调整UIImage的大小。调整大小后,如果我打印创建的新UIImage的大小,则大小与预期一致。

在第一次操作之后,我使用ASIHTTP lib将压缩图像(UIImageJPEGRepresentation(scaledImage,0.7))发送到Web服务。

使用iPad,图像以预期大小存储在服务器上。当我在iPod(4gen)上运行相同的代码时,图像的存储量比原始版本大......你对我有什么提示吗?

2 个答案:

答案 0 :(得分:1)

我很乐意进行以下概括:在完全相同的 iOS版本上运行,并使用完全相同的输入UIImage,我会期待你从UIImageJPEGRepresentation获得与其相同质量参数的完全相同的字节。*

当您说存储的图像较大时,您的意思是文件大小,对吧?不是实际的图像尺寸?什么是“预期尺寸”(为什么你期望它)?在这种情况下,您确定输入源图像是否相同?


* N.B。总而言之,JPEG编码器唯一的合同是它从源图像中以正确的尺寸吐出有效的JPEG。我不在Apple工作。超出所记录的API的内部可以随意地以任意方式运行,特别是在版本之间,并且可能编码器中存在每设备优化(等),例如使用不同的手 - 某些臂平台的构建组件,或编码器制作的特定于环境的运行时选择。

答案 1 :(得分:0)

MGImageUtilities正在调整UIImage的大小,它将视网膜显示DPI应用于图像。它不是72像素/英寸,而是应用144p / i。所以我在网上搜索了一个更好的lib,我想我找到了一些非常有用的东西:http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/