原文地址:http://www.iitshare.com/linux-install-imagemagick-jmagick.html

一、安装背景

最近在服务器上部署了HapiCMS的产品,因为其对图片的压缩是采用ImageMagick实现的,所以需要在服务器上面安装ImageMagick与jmagick,将操作的过程写了下来,和大家分享下,其中包含rpm方式安装、linux32位安装ImageMagick与jmagick、linux64位安装ImageMagick与jmagick,如果大家有什么问题可以进行留言,有时间的话会及时进行回复。

二、ImageMagick介绍

ImageMagick是用C语言开发图片处理程序。可以对图片进行改变大小、旋转、锐化、减色或增加特效等操作。对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。
ImageMagick 的官网是:http://www.imagemagick.org/script/index.php
由于我们是java项目,直接使用java通过JNI技术调用ImageMagick是不行的。因为ImageMagick开发时没有使用java JNI生成的头文件。可以使用jmagick解决,jmagick是由c语言开发的,开发时使用了java JNI生成的头文件,所以java可以通过JNI技术调用jmagick。jmagick再调用ImageMagick。这们我们处理图片使用的是jmagick暴露的java接口。也可以使用JNA来调用ImageMagick,JNA全称是Java Native Access,JNA是在JNI的基础上完善的,方便的我们开发的。JNA项目主页是https://github.com/twall/jna。使用JNA来调用ImageMagick就须要直接操作ImageMagick提供的C接口(API)。

三、确保系统已经安装以下包

1
2
3
4
5
6
7
8
9
10
# yum install libjpeg
# yum install libjpeg-devel
# yum install libpng
# yum install libpng-devel
# yum install libtiff
# yum install libtiff-devel
# yum install libungif
# yum install libungif-devel
# yum install freetype
# yum install zlib

可以通过下面的命令进行查看

1
#rpm -qa |grep libjpeg

如果没有安装,请通过yum命令安装以上依赖包

四、安装ImageMagick 不区分32位、64位操作系统

安装方式有两种,第一种方式是直接安装rpm方式安装,此方式也是本文推荐的方式
第二种方式是通过编译的方式安装,没有什么特殊要求建议还是用rpm方式安装
1、yum方式安装,具体如下:

1
2
3
# 如果以前安装过,卸载掉ImageMagick:
#yum remove ImageMagick
#yum install ImageMagick

2、编译的方式进行安装
http://downloads.jmagick.org/6.4.0/这个网址下载需要安装的版本,可以下载的文件包括以下

1
2
3
4
5
6
7
8
9
ImageMagick-6.4.0-0.tar.gz       24-Mar-2008 00:15  11M
jmagick-6.4.0-3.i386.rpm         05-Jun-2009 09:27  172K
jmagick-6.4.0-3.src.rpm          05-Jun-2009 09:27  524K
jmagick-6.4.0-3.x86_64.rpm       05-Jun-2009 09:27  65K
jmagick-6.4.0-src.tar.gz         11-Feb-2009 10:27  521K
jmagick-debuginfo-6.4.0-3.x86_64.rpm  05-Jun-2009 09:27  135K
jmagick-linux-6.4.0-Q8.tar.gz         08-Dec-2008 19:27  56K
jmagick-linux-6.4.0-Q16.tar.gz    08-Dec-2008 19:27  56K
jmagick-linux-6.4.0-Q32.tar.gz    08-Dec-2008 19:27  56K

根据自己的需求安装相应版本的ImageMagick,具体的代码如下

1
2
3
4
5
6
#tar zxvf ImageMagick-6.4.0-0.tar.gz
#cd ImageMagick-6.4.0
#./configure --enable-shared --without-perl(如果不行就用./configure)
#make
#make install
#make check

3、安装完成后会生成一个convert

1
2
#find / -name convert
#convert --version

可以根据查看的结果判断安装是否成功。
然后可以在命令行下试试是否能用convert命令

1
#convert -geometry 100x200 源文件.jpg 处理后文件.gif (格式转换)

五、安装JMagick

安装的前提是下载了上面步骤三、安装ImageMagick中2里面说的安装包
1、安装依赖的库等
注意:无论是否有自己的 JRE/JDK 感觉这个还是必须要有,否则安装 RPM 会提示找不到相关的JAVA库
注意:安装 jmagick-src 的时候,如果没有这个 jman 帐号,会安装出错
Shell代码如下:

1
2
# yum install java;
# /usr/sbin/useradd –u 1000 –s /sbin/nologin jman;

2、32位操作系统 rpm 方式安装jmagick,shell代码如下:

1
2
# rpm –ivh jmagick-6.4.0-3.i386.rpm
# rpm –ivh jmagick-6.4.0-3.src.rpm

3、64位操作系统 rpm 方式安装jmagick,shell代码如下:

1
2
3
# rpm –ivh jmagick-6.4.0-3.x86_64.rpm
# rpm –ivh jmagick-6.4.0-3.src.rpm
# rpm –ivh jmagick-debuginfo-6.4.0-3.x86_64.rpm

32位操作系统无jmagick-debuginfo-6.4.0-3.x86_64.rpm文件
4、如果安装src出现以下错误

1
2
[root@localhost ~]# rpm -ivh jmagick-6.4.0-3.src.rpm
error: cannot create %sourcedir /usr/src/redhat/SOURCES

则执行以下语句即可

1
2
[root@localhost ~]# mkdir /usr/src/redhat
[root@localhost ~]# mkdir /usr/src/redhat/SOURCES

5、编译的方式安装jmagick,不区分32位还是64位,具体的Shell代码如下:

1
2
3
4
5
6
7
tar zvxf jmagick-6.4.0-src.tar.gz
cd jmagick-6.4.0-src
./configure --prefix=/opt360/jmagick-6.4.0
--with-java-home=/usr/local/java/jdk1.6.0_30
--with-magick-home=/opt360/ImageMagick-6.4.0
make all
make install

安装成功后,在/opt360/jmagick-6.4.0/lib/有一个jmagick-6.4.0.jar文件,在你的java项目中就使用这个jar文件处理图片,需要将jmagick-6.4.0.jar文件挪到TOMCAT的BIN目录,具体命令如下:

1
# mv *.jar /usr/local/apache-tomcat-6.0.35/bin

记住jmagick-6.4.0.jar是使用前面你指定的jdk1.6编译出来的,所以不能在jdk为1.5的环境下使用jmagick-6.4.0.jar。
如果你执行了make javadoc,在/opt360/jmagick-6.4.0/share/doc目录下就有文档。

安装中出现的问题解决

1、如果安装过程中出现以下错误:

1
2
error: Failed dependencies:
        jre is needed by jmagick-6.4.0-3.i386

说明没有安装上面步骤1中说明,安装JRE/JDK,请安装后再试
2、如果要测试的程序或者项目在Tomcat下,请重启Tomcat后再进行测试,我之前没有重启Tomcat,测试了几次还是报错,最后重启完Tomcat就好使了。

整个安装过程到此为止,欢迎大家阅读。

Linux安装ImageMagick与JMagick完成过程及配置的更多相关文章

  1. Linux安装MariaDB(Mysql)和简单配置 mariadb

    Linux安装MariaDB(Mysql)和简单配置 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动Ma ...

  2. 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)

    安装过程(如图所示) .Exceptionin thread "main" java.lang.UnsatisfiedLinkError:C:\WINDOWS\system32\j ...

  3. linux 安装 ImageMagick 和 imagick 扩展

    使用命令安装 1.依次运行以下命令 yum install ImageMagick yum install ImageMagick-devel yum install php-pear 安装php-p ...

  4. linux 安装jdk以及nginx详细过程

    一.安装jdk 1:首先下载jdk到本地,然后通过git 上传到linux服务器上 2:进入目录usr,并创建目录java,将jdk的压缩文件移动到该目录下 cd /usr mkdir java mv ...

  5. linux安装imagemagick,centos安装imagemagick方法

    1.安装文件格式支持库 yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype- ...

  6. Linux安装MariaDB(Mysql)和简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ...

  7. linux 安装中文支持包及中文字符集配置

    由于某些原因系统安装时未安装中文支持,导致后续应用出现中文方块乱码现象,解决方法很简单,当然不是重装,只需以下三步即可搞定. 1.安装中文包: #yum -y groupinstall chinese ...

  8. Linux 安装elasticsearch、node.js、elasticsearch-head

    前提:下载es的安装包 官网可以下载 es官网 安装elasticsearch 1 新建两个文件夹 一个存放安装文件,一个存放解压后的文件 mkdir -p /export/software //存放 ...

  9. linux安装apache的纠结过程

    本以为linux下安装apache是件很简单的过程.三命令就可以搞定,jxvf解压,make 编译,make install 安装就OK了.没想到这个过程还颇费周折.可能和环境有关吧.先说一下我的环境 ...

随机推荐

  1. SPListItem.UpdateOverwriteVersion()真的不会创建新版本吗?

    根据msdn文档, SPListItem.UpdateOverwriteVersion(): Updates the item without creating another version of ...

  2. Petrozavodsk WinterTraining 2015

    PetrozavodskWinterTraining2015 A - Three Servers 题目描述:有\(n\)个数,将这\(n\)个数分成\(3\)堆,使得\(3\)堆中和的最大值减最小值最 ...

  3. js如何判断访问来源是来自搜索引擎(蜘蛛人)还是直接访问

    以下javascript脚本代码可以实现判断访问是否来自搜索引擎.代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <scri ...

  4. 桌面图形化安装的CentOS6.7中默认安装的yum不能正常使用

    使用rpm -qa|grep yum,可以发现有好多关于yum的安装插件等东西... 从里面将的一些东西删除掉,只留下下面三个即可,其余的全部删除掉rpm -e yum-plugin-security ...

  5. 001.DHCP简介

    一 DHCP概念 DHCP指动态主机配置协议,是一个局域网的网络协议,使用UDP协议工作. 二 应用 为大量客户机自动分配地址,提供集中管理 减轻管理和维护成本,提高网络配置效率 三 分配的主要信息 ...

  6. 浅谈Spring的AOP实现-代理机制

    说起Spring的AOP(Aspect-Oriented Programming)面向切面编程大家都很熟悉(Spring不是这次博文的重点),但是我先提出几个问题,看看同学们是否了解,如果了解的话可以 ...

  7. SpringMVC框架06——文件上传与下载

    1.文件上传 Spring MVC框架的文件上传是基于commons-fileupload组件的文件上传,只不过Spring MVC框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现. ...

  8. 【Ray Tracing in One Weekend 超详解】 光线追踪1-4

    我们上一篇写了Chapter5 的第一个部分表面法线,那么我们来学剩下的部分,以及Chapter6. Chapter5:Surface normals and multiple objects. 我们 ...

  9. 公钥,密钥,HTTPS详解

    公钥与私钥,HTTPS详解 1.公钥与私钥原理1)鲍勃有两把钥匙,一把是公钥,另一把是私钥2)鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把.3)苏珊要给鲍勃写一封保密的信.她写完后 ...

  10. JavaScript实现链式调用

    学习Jquery的时候,我们通常会看到链式调用的写法 $(window).addEvent('load', function(){ $('test').show().setStyle('color', ...