1.JMagick是一个开源API,利用JNI(Java Native Interface)技术实现了对ImageMagick API的Java访问接口,因此也将比纯Java实现的图片操作函数在速度上要快。JMagick只实现了ImageMagicAPI的一部分功能,它的发行遵循LGPL协议
2.im4java是ImageMagick的另一个Java开源接口。与JMagick不同之处在于im4java只是生成与ImageMagick相对应的命令行,然后将生成的命令行传至选中的IM-command(使用java.lang.ProcessBuilder.start()实现)来执行相应的操作。它支持大部分ImageMagick命令,可以针对不同组的图片多次复用同一个命令行。
以前用过几次 ImageMagick 都是用的jmagick 接口。不为什么,就因为知道他速度快 资料相对较多
最近app内存不够用。32位jdk内存给不上去。想换到64位。但是死活找不到64bit jmagick.dll。google 百度 得到结论是 64位进程不能够调用32位的 dll 因为 想在64位的系统上用jmagick 不仅要将 jdk换成32位 而且 jmagick.dll也得放到syswow64下面 不能放到system32中
im4java只是封装ImageMagick的命令。所以不需要依赖dll 也不存在64位系统调用32位dll的问题.而且im4java支持GraphicsMagick GraphicsMagick是ImageMagick的分支。且 Flickr 和 Etsy 都要使用它。相对ImageMagick ,GraphicsMagick更稳定,消耗资源更少。最重要的是不依赖dll环境
结论,放弃jmagick吧。im4java 是正确的选择