在 Java 中获取图像质量与 ImageMagick 的 "identify" 命令相同

Get image quality in Java in the same way as ImageMagick's "identify" command

我正在尝试使用 Java 获得图像质量,但我很难找到可以做到这一点的任何 API。

我偶然发现了 ImageMagick 命令 identify,它工作得很好,但我想知道是否有 Java API 可以做类似的事情。

Here is ImageMagick command that I found

如何使用 Java 获得图像的质量?

The ImageMagick website 有一个页面列出了多种编程语言的 API,包括 Java。这些可用于从 Java 程序中获取质量。

列出的两个 Java 库是 JMagick and Im4java:

JMagick provides an object-oriented Java interface to ImageMagick. Im4java is a pure-java interface to the ImageMagick command-line.

请注意,JMagick link 似乎已损坏。网络搜索表明 GitHub 上的 htechblue/jmagick 分支是最近维护的替代品。

这些库中的任何一个都应该可以从 Java 程序中获取质量。

要计算图像的压缩率,您可以将实际文件大小与存储图像时得到的大小进行比较 "raw"。

例如,一个 1024x1024 的 jpeg 文件,真彩色 (24bpp) 为 384Kb,您将得到 (384x1024) / (1024x1024x3) = 0.125 的比率,这意味着 jpeg 生成的文件占原始图像的 12% .

无需解压缩图像。