我正在使用JAI媒体api和ImageMagick?
ImageMagick存在一些可扩展性问题,而基于JNI的JMagick也没有吸引力。 与ImageMagick相比,JAI在进行大小调整操作时效果不佳。
有没有人知道任何优秀的工具,无论是开源还是商业,都是原生java并提供高质量的结果?
答案 0 :(得分:129)
我知道这个问题已经过时了,但随着新软件的出现,它确实有助于获得一些可能对人们感兴趣的项目的新链接。
imgscalr是纯Java图像大小调整(以及简单的操作,如填充,裁剪,旋转,变亮/调光等),使用起来非常简单 - 单个类由一组简单的图形组成所有操作都定义为 static 方法,您可以传递图像并返回结果。
使用该库的最基本示例如下所示:
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实现更好的缩放结果。
答案 1 :(得分:85)
答案 2 :(得分:30)
另一个不错的选择:Marvin
答案 3 :(得分:9)
我不是Java人,但OpenCV非常适合我的需求。不确定它是否适合你的。我认为这是一个Java端口: http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
答案 4 :(得分:8)
Processing是新的但非常非常好。
答案 5 :(得分:5)
尝试使用Catalano Framework。
关键点:
Catalano Framework是Java和Android的科学计算框架。该项目最初是作为.NET的AForge.NET和Accord.NET框架的许多功能的初始端口,但随着更高级的功能正在稳步增长,这些功能现在正在这些项目之间共享。
示例:
FastBitmap fb = new FastBitmap(bitmap);
Grayscale g = new Grayscale();
g.applyInPlace(fb);
Threshold t = new Threshold(120);
t.applyInPlace(fb);
bitmap = fb.toBitmap();
//Show the result
答案 6 :(得分:4)
最好的方法是使用GraphicsMagick Image Processing System和im4java作为Java的命令行界面。
GraphicsMagick有很多优点,但对所有人来说都是:
答案 7 :(得分:3)
http://im4java.sourceforge.net/ - 如果您正在运行Linux,那么新流程并不昂贵。
答案 8 :(得分:2)
对于商业工具,您可能想尝试Snowbound。
我对它们的体验有些陈旧,但我发现它们的Java Imaging API比JAI更容易使用,速度更快。
他们的客户支持和代码示例也非常好。
答案 9 :(得分:2)
RoboRealm视觉软件list在许多其他非基于Java的库中提及JHLabs和NeatVision。
答案 10 :(得分:1)
我不能说这是“最好的”图书馆,但我想你可以试试这个: http://algart.net/java/AlgART/ 它是一个开源Java库,支持通用的“智能”数组和矩阵,包含不同类型的元素(从1位到64位浮点),包括2D,3D和多维图像处理和其他算法,使用数组和矩阵。 不幸的是,它现在没有足够的演示和示例,但另一方面,它包含许多JavaDoc。它在商业软件(SIMAGIS)的基础上存在了几年,但现在它是开源的。