Thumbnailator图片处理库

Thumbnailator 是一个优秀的图片处理的Google开源Java类库

Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图。

有一定的名气,ckfinder富文本编辑器对图片的处理使用就是Thumbnailator。

我最早使用就是Thumbnailator,但在使用中遇到了问题:

1、处理CMYK色彩空间的图片时,报异常,无法处理。 (通过com.sicheng.upload.thumbnail.thumbnailator.ImageCMYK类转换色彩空间,得以解决,但影响了性能)

2、一小部分图片发生变色,变红。

GraphicsMagick图片处理库

ImageMagick是用C语言开发图片处理程序。可以对图片进行改变大小、旋转、锐化、减色或增加特效等操作。对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。ImageMagick 的官网是: http://www.imagemagick.org/script/index.php

GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是现在他变得更稳定和优秀,GM更小更容易安装、GM更有效率、GM的手册非常丰富GraphicsMagick的命令与ImageMagick基本是一样的。


java语言通过 JMagick或IM4JAVA 来调用 ImageMagick和GraphicsMagick

JMagick不适合在Web应用中使用, JMagick使用JNI技术调用ImageMagick,存在JNI-hazard问题。不适合在长时间运行的Web应用程序使用ImageMagick +Jmagick,可能导致JVM崩溃。

IM4JAVA是纯java开发的 ImageMagick和GraphicsMagick的 调用工具,使用了操作系统的管道来调用命令行。很稳定,性能低于JMagick

最终选用:GraphicsMagick+Im4Java来处理图片

我的个人博客中有几篇有关于GraphicsMagick的文章
http://elf8848.iteye.com/category/178059

ImageMagick简介、GraphicsMagick、命令行使用示例
http://elf8848.iteye.com/blog/382528

GraphicsMagick生成缩略图性能优化
http://elf8848.iteye.com/blog/1858973

GraphicsMagick性能测试(二) - 开启多线程对性能的影响
http://elf8848.iteye.com/blog/1855455

SimpleImage图片处理库

SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。
https://github.com/alibaba/simpleimage/wiki

Java下处理图形是一件很头疼的工作, 这方面Java虽然提供了JAI/ImageIO API组件让程序员可以完成大量的操作, 但是, 由于固有一些缺陷, 导致应用的稳定性/常用功能受到极大的影响。 另外一些C/C++制作的图形库存在各种各样的问题, 比如由之封装的Java API JImageMagic, 稍微大点压力的群集可能每天造成数次的崩溃 。 我们经过根据阿里巴巴的业务需求, 开发了SimpleImage API 用处理图形的读写。 这个包并没有开发图形的所有功能, 我们是根据JAI/ImageIO的天生弱点,开发的增强功能。 希望这些工作能对开发JavaWeb应用能带来便利。当前最新版本实现的主要功能有:

  • JPEG解码增强(无内存泄漏,支持CMYK)
  • GIF动画的读取和保存
  • 图像颜色空间转换
  • 图像高质量缩略
  • 图像打水印文字

JAI是什么?
Java Image功能一直都在增强,但是向磁盘写一个图像文件或者返回一个PNG或JPEG依然比较难实现。但是我们可以使用Java Advanced Imaging(JAI)API来解决这个问题。JAI可以从SUN的Java站点下载,它包含在JDK 1.4的javax.imageio包中。
Windows中提供一个installation.exe文件提供JAI的自动安装,而UNIX和Linux中则没有。虽然JAI可以运行在纯Java模式,但是同时也提供有Windows、Linux以及UNIX的本地库,这样可以提高运行速度。

依赖jar
commons-io.jar
jai_codec.jar
jai_core.jar

参考: http://blog.csdn.net/whatareyouding/article/details/51612052

比较

性能 稳定性
GraphicsMagick
Thumbnailator
SimpleImage