centos上安装ImageMagick

来源:互联网 发布:淘宝上的俄罗斯巧克力 编辑:程序博客网 时间:2024/04/28 13:17

一、安装背景
游戏中要用到用户上传头像,编辑的功能,能进行旋转,裁剪,缩放等。

二、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)。

三、确保系统已经安装以下包
# 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

可以通过下面的命令进行查看
#rpm -qa |grep libjpeg

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

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

安装方式有两种,第一种方式是直接安装rpm方式安装,此方式也是本文推荐的方式
 第二种方式是通过编译的方式安装,没有什么特殊要求建议还是用rpm方式安装
1、yum方式安装,具体如下:
# 如果以前安装过,卸载掉ImageMagick:
#yum remove ImageMagick
#yum install ImageMagick
2、编译的方式进行安装
 从http://downloads.jmagick.org/6.4.0/这个网址下载需要安装的版本,可以下载的文件包括以下
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,具体的代码如下
#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
#find / -name convert
#convert --version

可以根据查看的结果判断安装是否成功。然后可以在命令行下试试是否能用convert命令
#convert -geometry 100x200 源文件.jpg 处理后文件.gif (格式转换)、
补充
1. 如果报如下错误
{ [Error: Command failed: convert: no decode delegate for this image format `JPEG' @ error/constitute.c/ReadImage/501.
convert: no images defined `/home/node/head/I/IMG_0005.JPG' @ error/convert.c/ConvertImageCommand/3230.
] code: 1, signal: null }
说明 我们的转换工具不支持该种图片的格式,可以用命令 identify -list format 确认下。
解决方法  可以到这个网址下载相应的库 http://www.imagemagick.org/download/delegates/
jpg或者png等格式都有。下载之后
解压
tar zvxf libjpeg-6b.tar.gz
#安装
cd ~/zlib-1.2.7
./configure
make
make install
按理说 到此应该就可以支持jpg格式了,但是我实际测试的时候 仍然不成功,后来追加了下一步,才成。
重装Imagemagick
make uninstall
./configure
make
make install
再次调用 成功。
五、安装JMagick

安装的前提是下载了上面步骤三、安装ImageMagick中2里面说的安装包
1、安装依赖的库等
 注意:无论是否有自己的 JRE/JDK 感觉这个还是必须要有,否则安装 RPM 会提示找不到相关的JAVA库
 注意:安装 jmagick-src 的时候,如果没有这个 jman 帐号,会安装出错
Shell代码如下:
# yum install java;
# /usr/sbin/useradd –u 1000 –s /sbin/nologin jman;
2、32位操作系统 rpm 方式安装jmagick,shell代码如下:
# rpm –ivh jmagick-6.4.0-3.i386.rpm
# rpm –ivh jmagick-6.4.0-3.src.rpm
3、64位操作系统 rpm 方式安装jmagick,shell代码如下:
# 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出现以下错误
[root@localhost ~]# rpm -ivh jmagick-6.4.0-3.src.rpm
error: cannot create %sourcedir /usr/src/redhat/SOURCES
则执行以下语句即可
[root@localhost ~]# mkdir /usr/src/redhat
[root@localhost ~]# mkdir /usr/src/redhat/SOURCES
5、编译的方式安装jmagick,不区分32位还是64位,具体的Shell代码如下:
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目录,具体命令如下:
# 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、如果安装过程中出现以下错误:
error: Failed dependencies:
        jre is needed by jmagick-6.4.0-3.i386
说明没有安装上面步骤1中说明,安装JRE/JDK,请安装后再试
2、如果要测试的程序或者项目在Tomcat下,请重启Tomcat后再进行测试,我之前没有重启Tomcat,测试了几次还是报错,最后重启完Tomcat就好使了。
整个安装过程到此为止,欢迎大家阅读。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大便堵在肛门口怎么办 在外地流量不够用怎么办 电脑键盘数字键没反应怎么办 音响音量键坏了怎么办 摩托罗拉移动电话通话没声音怎么办 摩托罗拉对讲机充电座坏了怎么办 手机导航键太灵敏怎么办 经侦大队不立案怎么办 槐茂酱菜太咸怎么办 法院执法局执法不公怎么办 搞养殖卖不出去怎么办 孔雀吃了蚯蚓该怎么办 多肉幼苗长徒了怎么办 小鸵鸟嘴断了怎么办 武汉早谢怎么办博大直上 威猛先生伤手了怎么办 嗓子眼边条线下边长块肉怎么办 线长在肉里怎么办 北京买车没有号怎么办 租的车处理违章怎么办 以租代购车不要怎么办 订车的合同掉了怎么办 买车合同丢了怎么办 车的证件都丢了怎么办 桃树直立的徒长枝怎么办 月季花长了独枝怎么办? 6岁半B超没子宫怎么办 学生学籍号和身份证号不一致怎么办 学生学籍号和身份证号不一样怎么办 领导交代的任务完不成怎么办 洗衣机里的衣服有味道怎么办 新买的洗衣机有味道怎么办 模拟工业装置没有数据验证怎么办 民办学校的指标生学费怎么办 孩子上初中后成绩不好怎么办 孩子考最后一名怎么办 数学大题不会做怎么办 小学六年级数学考30分怎么办 六年级数学考了30分怎么办 数学考了30分怎么办 没有给直接领导报到怎么办