一、前提介绍
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来调用ImageMagick,JNA全称是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
下载地址:ftp://gd.tuwien.ac.at/pub/graphics/ImageMagick/ImageMagick-6.7.5-0.tar.gz
tar xzf ImageMagick-6.7.5-0.tar.gz
cd ImageMagick-6.7.5-0
./configure
make
make install
ldconfig /usr/local/lib
/usr/local/bin/convert logo: logo.gif
安装jmagick
yum install git
git clone https://github.com/techblue/jmagick
cd jmagick
whereis java
./configure --prefix=/opt/JMagick --with-java-home=/opt/jdk1.7.0_71/ --with-magick-inc- dir=/opt/ImageMagick-6.7.5-0/include/ImageMagick
make
make install
convert --version
四、最后
1、编辑/etc/profile里面的PATH环境变量,在最后面加入:
export PATH=/usr/local/ImageMagick/bin:$PATH
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
2、编辑/etc/ld.so.conf:
找到:include ld.so.conf.d/*.conf
修改为:
include ld.so.conf.d/*.conf /usr/local/ImageMagick/lib
也就是添加了:"空格" + "/usr/local/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。
将/usr/local/Jmagic/lib目录下的jar文件,拷贝到工程的WEB-INFO/lib或者resin/lib下
基本上完成了
其实这个要java程序调用的时候才知道结果。
将/usr/local/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(缩放后存放路径) 裁剪图片
原文地址:http://yanruohan.blog.51cto.com/9740053/1591491