一、安装背景
程序要用到用户上传图片,编辑的功能,能进行旋转,裁剪,缩放等。

二、ImageMagick介绍

ImageMagick是用C语言开发图片处理程序。可以对图片进行改变大小、旋转、锐化、减色或增加特效等操作。对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、JavaPHPPython或Ruby编程来完成。
ImageMagick 的官网是:http://www.imagemagick.org/script/index.php
由于我们是java项目,直接使用java通过JNI技术调用ImageMagick是不行的。因为ImageMagick开发时没有使用JavaJNI生成的头文件。可以使用jmagick解决,jmagick是由c语言开发的,开发时使用了javaJNI生成的头文件,所以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就好使了。

Linux端图形处理工具ImageMagick在Centos上的安装的更多相关文章

  1. Linux系统运维笔记(四),CentOS 6.4安装 MongoDB

    Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...

  2. Linux系统运维笔记(四),CentOS 6.4安装Nginx

    Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...

  3. Cacti中文版在Centos上的安装

    最近老有人问Cacti中文版在哪下载啊怎么安装啊,我在这里一遍给大家讲解了:Cacti中文版在Centos上的安装 1.基本安装 cacti是运作在apache+php+mysql+net-snmp工 ...

  4. Linux系统运维笔记(五),CentOS 6.4安装java程序

    Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选  ru ...

  5. MongoDB 3.2 在CentOS 上的安装和配置

    MongoDB 3.2 在CentOS 上的安装和配置   2016-01-06 14:41:41 发布 您的评价:       0.0   收藏     0收藏 一.安装 编辑/etc/yum.re ...

  6. Linux系统入门学习:在CentOS上安装phpMyAdmin

    问题:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库.在CentOS上安装phpMyAdmin的最佳方法是什么? phpMyAd ...

  7. Centos上的安装openoffice+unoconv+swftools (转)

    ############################## #    swftools的安装     # ############################## 1.安装所需的库和组件 yum ...

  8. centos上如何安装mysql

    centos可以使用yum安装mysql 但是版本很低,且不灵活. 本文将介绍如何使用安装包安装mysql http://dev.mysql.com/downloads/mysql/ 下载mysql ...

  9. Docker(1)在CentOS上的安装与卸载

     一. Docker的安装 CentOS7 上安装: 1. 卸载旧版本 $ sudo yum remove docker \ docker-client \ docker-client-latest ...

随机推荐

  1. 从零开始配置TypeScript + React + React-Router + Redux + Webpack开发环境

    转载请注明出处! 说在前面的话: 1.为什么不使用现成的脚手架?脚手架配置的东西太多太重了,一股脑全塞给你,我只想先用一些我能懂的库和插件,然后慢慢的添加其他的.而且自己从零开始配置也能学到更多的东西 ...

  2. Linux vi 退出&保存/不保存

    无论是否退出 vi,均可保存所做的工作.按 ESC 键,确定 vi 是否处于命令模式. 操作   键入 保存,但不退出vi                          :w 保存并退出vi    ...

  3. Jquery仿京东分类导航层简单实现

    <script src="/js/jquery-1.11.1.min.js" type="text/javascript"></script& ...

  4. 安装xp遇到的问题与如何连接共享的打印机

    2013-12-5 星期四 今天下午去给曹老师鼓捣电脑去了,安装了一个xp系统,加上一些常用的办公软件,在连接上一个共享的打印机. 下面是今天我遇到的问题: 问题:安装xp系统之后,没有本地连接,只有 ...

  5. 简说chart2.4的应用,以及Uncaught ReferenceError : require is not defined的解决

    51呢最近在学习chart.js,然后呢就照着中文的帮助文档来然后就一直出Uncaught ReferenceError : require is not defined的问题查了挺多才知道是帮助文档 ...

  6. webpack核心概念

    一.webpack四个核心概念 1.入口[Entry] webpack将创建所有应用程序 依赖关系图表.图表的起点被称之为 入口起点.入口起点告诉webpack从哪里开始,并遵循着依赖关系图表知道打包 ...

  7. LeetCode 697. Degree of an Array (数组的度)

    Given a non-empty array of non-negative integers nums, the degree of this array is defined as the ma ...

  8. [http服务]

    [http服务] CentOS 6 httpd 程序环境 记录了httpd的主进程编号: v 主程序文件: /usr/sbin/httpd /usr/sbin/httpd.worker /usr/sb ...

  9. thinkphp3.2开发网页实现第三方登录

    1.在要添加登录的html里添加登录按钮: <a href="{:U('Public/login/',array('type'=>'weixin'))}">< ...

  10. SimpleDateFormat 常规用法

    public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (d ...