我尝试在 Java 中获取 JPEG 和 GIF 图像的压缩率。到处搜索,但找不到任何东西。是否可以读取文件的压缩比?如果不是,我怎么能计算这个比率?
问问题
1988 次
3 回答
1
要计算图像的压缩率,请将实际文件大小与存储图像“原始”时获得的大小进行比较。
例如,一个 1024x1024、真彩色 (24bpp) 为 384Kb 的 jpeg 文件的比率为 (384x1024) / (1024x1024x3) = 0.125,这意味着 jpeg 生成的文件占原始图像的 12%。如果您反转除法,您可以说图像被压缩为 8 倍或 1:8 比例。
从 headers 或使用 Image API 获取图像的大小和颜色信息,无需解压缩文件进行此计算
于 2013-02-07T17:43:29.673 回答
0
您可以尝试将文件大小与其像素数进行比较 - 它为您提供了一种比率。例如:
//Image 1
Image Dimensions = 607x800px
Number of pixels = 486K
File size = 143KB
//Good quality
//Image 2
Image Dimension s= 1719x2377px
Number pixels= 4.086M
File size = 408KB
//Bad quality
于 2013-02-07T17:40:04.920 回答
0
您可以从Java Image-IO开始,读入您的图像并使用ImageReader类的适当方法。
您可以在此处下载JAI。
于 2013-02-07T17:36:28.650 回答