为什么降低ImageIO.save()中的png / jpg质量因子不会降低输出图像文件的大小?

时间:2016-06-12 14:55:20

标签: image png jpeg codenameone

我一直在使用

ImageIO.getImageIO().save(image, os, ImageIO.FORMAT_PNG, qualityFactor)

将图像保存在文件中的方法。无论我使用0.0和1.0之间的浮点值作为qualityFactor,我总是得到相同的输出文件大小(KB),无论我选择什么格式(PNG或JPEG)。

注意:我只在模拟器(iPhone / Android)上检查过这个,而不是在真实设备上。

将qualityFactor考虑在内的正确方法是什么?

干杯,

2 个答案:

答案 0 :(得分:1)

这是对底层平台的暗示,并非所有平台都接受这样的提示。 iOS没有,但Android没有。

iOS仅接受JPEG格式,因此它对无格式的PNG没有影响。

答案 1 :(得分:1)

没有"质量"巴布亚新几内亚调整。显然,您的编码器API具有兼容性设置。在PNG中,可以对时间与压缩大小进行比较,但这不会影响图像质量。

在JPEG中,有质量与尺寸权衡。然而,没有"质量" JPEG固有的因素。质量是子采样,量化表选择和(在很小程度上)最佳霍夫曼表的函数。

您的编码器使用"质量"参数是任何人的猜测。