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 | 差 | 好 |