什么是最好的java图像处理库/方法?[已关闭]

我同时使用了JAI媒体API和ImageMagick?

ImageMagick有一些可扩展性问题,基于JNI的JMagick也没有吸引力。与ImageMagick相比,JAI在执行调整大小操作时的质量较差。

有没有人知道任何优秀的工具,无论是开源的还是商业的,都是原生Java并提供高质量的结果?


答案 1

我知道这个问题已经很老了,但是随着新软件的出现,它确实有助于获得一些对人们来说可能感兴趣的项目的新链接。

imgscalr是纯Java图像调整大小(以及简单的操作,如填充,裁剪,旋转,变亮/调暗等)库,使用起来非常简单 - 单个类由一组简单的图形操作组成,所有操作都定义为静态方法,您可以传递图像并返回结果。

使用库的最基本示例如下所示:

BufferedImage thumbnail = Scalr.resize(image, 150);

使用一些质量调整等生成图像缩略图的更典型用法可能如下所示:

import static org.imgscalr.Scalr.*;

public static BufferedImage createThumbnail(BufferedImage img) {
    // Create quickly, then smooth and brighten it.
    img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);

    // Let's add a little border before we return result.
    return pad(img, 4);
}

所有图像处理操作都使用原始的 Java2D 管道(在主要平台上是硬件加速的),并且不会像代码中的库争用那样引入通过 JNI 调用的痛苦。

imgscalr也已在相当多的地方部署在大规模制作中 - AsyncScalr类的包含使其成为任何服务器端图像处理的完美插件。

您可以使用对图像质量进行许多调整,以在速度和质量之间进行权衡,并使用最高ULTRA_QUALITY模式提供比GIMP的Lancoz3实现更好的缩放结果。


答案 2

ImageJ,它吹嘘自己是

世界上最快的纯Java图像处理程序

它可以用作另一个应用程序中的库。它的架构并不出色,但它可以完成基本的图像处理任务。


推荐