0

我的应用程序为文件拍照。我在相机上指定了 1600x1200 的图片尺寸,请求 JPEG 图像,并将质量设置为 30。

开发 iPhone 版本应用程序的 iPhone 开发人员做同样的事情(1600 x 1200,质量 = 30)。

图像尺寸:

在 iPhone 4S 上:~100k 三星 Galaxy Nexus:~240k 三星 Galaxy S3:~600k

我验证了所有图像都是 JPEG 格式,并且都是 1600 x 1200。当我目视检查图像质量时,它们看起来大致相同。

为什么文件大小不同?最让我惊讶的是 Nexus 和 S3 之间的区别,因为它们运行的​​是完全相同的Android 代码。

4

2 回答 2

1

如果 jpeg 编码器使用不同的默认量化表,则两部手机上的相同图像可能具有不同的大小。量化是 jpeg 编码中唯一的有损步骤,它将对最终图像文件的大小产生最大的影响 - http://en.wikipedia.org/wiki/JPEG#Quantization

顺便说一句,您是否尝试过以原始分辨率目视检查图像?更大的屏幕可能有助于识别图像质量的细微差异(如果存在)。

于 2012-08-24T17:53:57.773 回答
0

这完全取决于手机本身如何构建以处理从相机拍摄的原始图像。它必须尽可能地将图像从它实际看到的内容转换为 JPG。当我以 RAW 格式处理我的 DSLR 拍摄的照片时,我可以输出不同文件大小(相同图片大小)的 JPG,只需处理曝光、颜色曲线等。我是手动完成的,但手机有内置的逻辑试图制作出大多数人都喜欢的图片。傻瓜相机做同样的事情。

根据这个网站,看起来 iPhone 比 S3 做了更多的压缩和颜色猜测。仔细看会发现,S3拍出来的照片颜色比较平滑,需要更多的内存来存储。我感觉 Nexus 使用了与 S3 类似的算法,只是没有相机那么好。

于 2012-08-24T16:18:13.077 回答