Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从iimetadata获得图像压缩质量?_Java_Jpeg_Javax.imageio_Gimp_Image Compression - Fatal编程技术网

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
generic
ImageWriteParam
保存新图像时,支持显式设置
compressionQuality
参数,范围从
0.0f
(高压缩)到
1.0f
(高质量),无论使用何种图像压缩算法(例如png、jpeg、gif)

  • 有没有办法从现有图像中读取压缩质量
  • 那个
    compressionQuality
    write参数只是对
    ImageWriter
    的一个提示,并没有存储在图像元数据的任何地方吗?如果是这样,图像处理软件(如GIMP)如何在“另存为”对话框中提供以下选项


我设法从
ImageInputStream
中读取
iimetadata
,并迭代其
metadataFormatNames
,以不同的XML格式打印图像元数据(通常为本机和标准
javax_imageio_1.0
)。虽然我在那里找不到任何图像压缩质量的指示。

我不认为压缩质量与图像元数据一起存储,这只是处理参数。

尽管某些软件和某些图像格式可能允许存储这些信息,但您通常无法做您想做的事情。以保存为“80%质量”的jpeg为例(不管这意味着什么)。现在将其转换为PNG。现在将其重新转换为保存为“80%质量”的jpeg格式。即使文件格式保存了质量,你会得到什么?80%? 那是完全错误的。这是80%中的80%(再一次,不管“80%”是什么意思)。此外,对于某些格式,“压缩质量”取决于压缩机的质量。对于某些格式,一个程序的“80%”可能是另一个程序的“70%”,等等。