Java 如何从iimetadata获得图像压缩质量?
使用Java 如何从iimetadata获得图像压缩质量?,java,jpeg,javax.imageio,gimp,image-compression,Java,Jpeg,Javax.imageio,Gimp,Image Compression,使用ImageIOgenericImageWriteParam保存新图像时,支持显式设置compressionQuality参数,范围从0.0f(高压缩)到1.0f(高质量),无论使用何种图像压缩算法(例如png、jpeg、gif) 有没有办法从现有图像中读取压缩质量 那个compressionQualitywrite参数只是对ImageWriter的一个提示,并没有存储在图像元数据的任何地方吗?如果是这样,图像处理软件(如GIMP)如何在“另存为”对话框中提供以下选项 我设法从Imag
ImageIO
genericImageWriteParam
保存新图像时,支持显式设置compressionQuality
参数,范围从0.0f
(高压缩)到1.0f
(高质量),无论使用何种图像压缩算法(例如png、jpeg、gif)
- 有没有办法从现有图像中读取压缩质量
- 那个
write参数只是对compressionQuality
的一个提示,并没有存储在图像元数据的任何地方吗?如果是这样,图像处理软件(如GIMP)如何在“另存为”对话框中提供以下选项ImageWriter
我设法从
ImageInputStream
中读取iimetadata
,并迭代其metadataFormatNames
,以不同的XML格式打印图像元数据(通常为本机和标准javax_imageio_1.0
)。虽然我在那里找不到任何图像压缩质量的指示。我不认为压缩质量与图像元数据一起存储,这只是处理参数。尽管某些软件和某些图像格式可能允许存储这些信息,但您通常无法做您想做的事情。以保存为“80%质量”的jpeg为例(不管这意味着什么)。现在将其转换为PNG。现在将其重新转换为保存为“80%质量”的jpeg格式。即使文件格式保存了质量,你会得到什么?80%? 那是完全错误的。这是80%中的80%(再一次,不管“80%”是什么意思)。此外,对于某些格式,“压缩质量”取决于压缩机的质量。对于某些格式,一个程序的“80%”可能是另一个程序的“70%”,等等。