我正在使用JAI媒体api和ImageMagick?
ImageMagick有一些可扩展性问题,而基于JNI的JMagick也没有吸引力.与ImageMagick相比,JAI在进行大小调整操作时效果不佳.
有没有人知道任何优秀的工具,无论是开源还是商业本土java并提供高质量的结果?
我知道这个问题很老了,但是随着新软件的出现,它确实有助于获得一些可能对人们感兴趣的项目的新链接.
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实现更好的缩放结果.
有ImageJ,自称是
世界上最快的纯Java图像处理程序
它可以在另一个应用程序中用作库.它的架构并不精彩,但它可以完成基本的图像处理任务.
另一个不错的选择:马文
我不是Java人,但OpenCV非常适合我的需求.不确定它是否适合你的.我认为这是一个Java端口:http: //docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
加工是新的,但非常非常好.
尝试使用Catalano Framework.
关键点:
像AForge.NET/Accord.NET这样的架构.
使用相同的代码,桌面和Android在这两个环境中运行.
包含多个并行过滤器.
发展充满活力.
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