【问题标题】:Java: reading compression ratio of an jpeg/gifJava:读取 jpeg/gif 的压缩比
【发布时间】:2013-01-23 07:34:45
【问题描述】:

我尝试在 Java 中获取 JPEG 和 GIF 图像的压缩率。 到处搜索,但找不到任何东西。是否可以读取文件的压缩比? 如果不是,我如何计算这个比率?

【问题讨论】:

  • 您指的是质量设置吗? GIF 没有质量设置——它是一种无损格式(只要您不需要超过 256 种颜色)。 Jpeg 实际上有几个变量代表质量和文件大小之间的权衡,尽管大多数图像编辑器将它们全部隐藏在单个滑块后面。
  • 显然对于JPEG的“压缩比”没有统一的定义:photo.stackexchange.com/questions/88167/…

标签: java jpeg gif javax.imageio


【解决方案1】:

要计算图像的压缩率,请将实际文件大小与“原始”图像存储时的大小进行比较。

例如一个 1024x1024 的 jpeg 文件,真彩色 (24bpp) 是 384Kb,你会得到 (384x1024) / (1024x1024x3) = 0.125 的比率,这意味着 jpeg 生成的文件占原始图像的 12%。如果您反转除法,您可以说图像被压缩为 8 倍或 1:8 比例。

从headers或使用Image API获取图像的大小和颜色信息,无需解压文件进行计算

【讨论】:

    【解决方案2】:

    您可以尝试将文件大小与其像素数进行比较 - 它为您提供了一种比率。例如:

    //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
    

    【讨论】:

      【解决方案3】:

      您可以从Java Image-IO 开始,读入您的图像并使用ImageReader 类的适当方法。

      您可以下载JAI here

      【讨论】:

        猜你喜欢
        • 2011-03-29
        • 2018-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多