一、前提介绍
ImageMagick是用C语言开发图片处理程序。可以对图片进行改变大小、旋转、锐化、减色或增加特效等操作。对图片的操作即可以通过命令行进行也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。ImageMagick 的官网是http://www.imagemagick.org/script/index.php
由于我们是java项目直接使用java通过JNI技术调用ImageMagick的C语言接口是不行的。因为ImageMagick开发时没有使用java JNI生成的头文件。可以使用jmagick解决jmagick是由c语言开发的开发时使用了java JNI生成的头文件所以java可以通过JNI技术调用jmagick。jmagick再调用ImageMagick。这们我们处理图片使用的是jmagick暴露的java接口。
JMagick不适合在Web应用中使用请参看JMagick的JNI-hazard问题
也可以使用JNA来调用ImageMagickJNA全称是Java Native Access,JNA是在JNI的基础上完善的方便的我们开发的。JNA项目主页是https://github.com/twall/jna 。使用JNA来调用ImageMagick就须要直接操作ImageMagick提供的C接口(API)。
二、安装支持库
Linux服务器如果没有安装Jpeg v6b、libPng、FreeType库要在安装imagemagick之前先装好否则imagemagick没法读取jpeg和png图片字体文件也读不了.
yum remove ImageMagick
yum install libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel libungif libungif-devel freetype zlib -y
三、在Linux上用源码安装ImageMagick与jmagick【建议安装版本号相同】
安装ImageMagick
http://downloads.jmagick.org/6.4.0/
tar zxf ImageMagick-6.4.0-0.tar.gz
cd ImageMagick-6.4.0
./configure --prefix=/usr/local/Imagemagick
make
make install
ldconfig /usr/local/lib
/usr/local/bin/convert logo: logo.gif
安装jmagick
tar zxf jmagick-6.4.0-src.tar.gz
cd jmagick-6.4.0-src.tar.gz
mv 6.4.0 jmagick
./configure --prefix=/usr/local/JMagick --with-java-home=/opt/jdk1.7.0_71/ --with-magick- home=/usr/local/ImageMagick/include
make
make install
convert --version
四、最后
1、编辑/etc/profile里面的PATH环境变量在最后面加入
export PATH=/opt/ImageMagick/bin:$PATH
LD_LIBRARY_PATH=/opt/lib
export LD_LIBRARY_PATH
2、编辑/etc/ld.so.conf:
找到include ld.so.conf.d/*.conf
修改为
include ld.so.conf.d/*.conf /opt/ImageMagick/lib
也就是添加了"空格" + "/opt/ImageMagick/lib"
执行命令
ldconfig
3、配置完成之后,进入/root/Jmagic/lib目录,
共有三个文件
jmagick-6.7.7.jar
libJMagick-6.7.7.so
libJMagick.so -> ./libJMagick-6.7.7.so
并把so文件复制 到你Jdk安装目录的 jre/lib/i386(64位amd64文件夹)文件夹下。
cp libJMagick-6.7.7.so /opt/jdk1.7.0_71/jre/lib/amd64
cd /opt/jdk1.7.0_71/jre/lib/amd64
mv libJMagick-6.7.7.so libJMagick.so
这样就完成了对ImageMagick的安装接下来我们安装其提供的Java的应用程序接口JMagick。
将/root/Jmagic/lib目录下的jar文件拷贝到工程的WEB-INFO/lib或者resin/lib下
基本上完成了
其实这个要java程序调用的时候才知道结果。
将/root/Jmagic/lib目录下的jar文件拷贝到工程的WEB-INFO/lib或者resin/lib下
这个应该是再开发包的webinfo下的lib下
安装成功后在/root/jmagick-6.7.7/lib/有一个jmagick-6.7.7.jar文件在你的java项目中就使用这个jar文件处理图片需要将jmagick-6.7.7.jar文件挪到TOMCAT的BIN目录,具体命令如下
# mv *.jar /usr/local/tomcat/apache-tomcat-6.0.35/bin
五、测试安装是否正常
进入ImageMagick安装目录,cd /opt/mageMagick/bin
convert logo: logo.png
convert logo: logo.gif
convert logo: logo.jpg
convert logo: logo.jpeg
# cd ImageMagick-6.7.5-0/
ls
etc include lib logo.gif share
以拷贝生成的文件logo.gif 本地后查看图则说明所有安装均正常。
开始测试
.测试命令行使用方法:
convert -resize 100x200 22.jpg(图片路径) 11.jpg(缩放后存放路径) 图片按比例缩放
convert -resize 100x200\! 22.jpg(图片路径) 11.jpg(缩放后存放路径) 强制按给定的宽高缩放
convert -crop 100(长)x200(高)+10(x坐标)+10(y坐标) 22.jpg(图片路径) 11.jpg(缩放后存放路径) 裁剪图片