一、ImageMagick的安装背景

项目中需要获得ECG图片,使用心电插件只能生成PDF,因此需要在Linux系统上安装ImageMagick程序将PDF转化成图片

二、ImageMagick介绍

ImageMagick是用C语言开发图片处理程序。可以对图片进行改变大小、旋转、锐化、减色或增加特效等操作。对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、JavaPHPPython或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

在查看时需注意,虽然显示系统安装有相应的图片格式,但状态为off也不行,需要安装对应的扩展版本,如libjpeg-devel

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

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

强烈建议使用yum安装,简单快捷,不易出错

安装方式有两种,第一种方式是直接安装yum方式安装,此方式也是本文推荐的方式
 第二种方式是通过编译的方式安装,没有什么特殊要求建议还是用yum方式安装
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

执行上面2个命令可能会弹出一些警告和错误,如下(可忽略,无伤大雅)

magick/blob.c:2628:13: error: ‘FILE’ has no member named ‘have’c=gzgetc(image->blob->file);^
magick/blob.c:2628:13: error: ‘FILE’ has no member named ‘have’c=gzgetc(image->blob->file);^
magick/blob.c:2628:13: error: ‘FILE’ has no member named ‘pos’c=gzgetc(image->blob->file);^
magick/blob.c:2628:13: error: ‘FILE’ has no member named ‘next’c=gzgetc(image->blob->file);^
magick/blob.c:2628:11: warning: passing argument 1 of ‘gzgetc’ from incompatible pointer type [enabled by default]c=gzgetc(image->blob->file);.......make[1]: *** [magick/magick_libMagickCore_la-blob.lo] Error 1
make[1]: Leaving directory `/opt/vdc/softwares/ImageMagick-6.4.0'
make: *** [check] Error 2

#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相关推荐

  1. Redis进阶实践之二如何在Linux系统上安装安装Redis

    2019独角兽企业重金招聘Python工程师标准>>> Redis进阶实践之二如何在Linux系统上安装安装Redis 一.引言 上一篇文章写了"如何安装VMware Pr ...

  2. qt-sdk-linux,在linux系统上安装qt-sdk步骤.doc

    在linux系统上安装qt-sdk步骤 在Linux系统上使用SDK安装Qt软件 在Linux上使用SDK安Qt是比较简单的,按照下面的安装步骤提示,一步一步下来即可完成,但是其中有些要注意的地方.下 ...

  3. linux终端下载notepad,在Linux系统上安装NotePad++的三种方法介绍

    本文介绍在Linux操作系统上安装NotePad++的三种方法,使用Snap.Wine和NotePadQQ.这里要说的是:由于像Wine和Snap软件包这样的工具,在Linux上运行的Notepad+ ...

  4. 电脑安装双系统-linux系统上安装windows系统

    电脑安装双系统 1 背景 2 环境 3 思路 4 操作步骤 4.1 安装gparted 4.2 设置windows安装驱动器 4.3 安装windows10操作系统 4.4 设置开机引导 1 背景 电 ...

  5. linux snap exe,在Linux系统上安装官方Snap Store应用程序

    本文介绍在Linux操作系统上安装官方Snap Store应用程序的方法,内容包括启用Snap支持.安装Snap Store及配置.从Snap Store安装软件及卸载软件.注意:Snap存储有时在非 ...

  6. linux安装文件多大空间,你的Linux系统上安装了多少内存?又使用了多少?

    [51CTO.com快译]几个命令可报告Linux系统上安装和使用了多少内存.你可能淹没于细节,也可能获得快速简易的答案,这看你使用哪个命令. 有好多方法可以获取Linux系统上已安装内存方面的信息, ...

  7. linux重装eclipse_如何在Linux系统上安装Eclipse

    如何在Linux系统上安装Eclipse 作为Java程序员,需要在Linux系统上安装Eclipse,很多人不知要如何安装,在安装Eclipse前,还需安装JDK,下面小编就给大家介绍下Linux如 ...

  8. Linux系统上安装JDK(有图详解)

    Linux系统上安装JDK 安装中要用到的工具: 1.通过Xshell连接linux服务(需要先安装Xshell) Xshell网盘提取链接(提取码:1sqk) 2.如果是在自己电脑上使用VMware ...

  9. linux 安装locate命令,在Linux系统上安装和使用locate命令的方法

    在Linux操作系统上工作时最常见的操作之一是搜索文件和目录,我们可以在Linux系统中安装locate并使用locate命令来操作,因为该命令是按名称搜索文件和目录的,使用它处理起来相当的简单,在本 ...

最新文章

  1. MySQL中常见的单行函数(上)
  2. typedefnbsp;struct与struct的区别
  3. jQuery安装和语法
  4. 前端学习(2570):template和jsx的对比
  5. [deviceone开发]-do_RichLabel的简单示例
  6. 洛谷P3205合唱队——区间DP
  7. ROS配置分布式通信
  8. array函数参数 scala_3小时Scala入门
  9. C++基础知识:C++语言中的表达式求值
  10. MFC获取当前应用程序实例句柄的三种方法
  11. screentogif能录制声音吗_学会了吗?使用GoldWave录制电脑中的声音
  12. amd显卡驱动目录linux,面向 Radeon、Radeon Pro、FirePro、APU、CPU、锐龙、台式机、笔记本的 AMD 驱动程序和支持...
  13. 关于打开浏览器jsp文件显示源代码的问题
  14. android——databinding中字符串的拼接处理、TextView显示的值随activity的属性值改变同时改变--LiveData、双向绑定过滤器、监听某个值的改变
  15. iOS 拓展,icon,尺寸 开发系列 吕文翰
  16. 一个小兔子的大数据见解2
  17. scribed 安装
  18. Jboss与jdk版本不兼容问题
  19. STL-夏天来了~~好开心啊,呵呵,好多好多水果~~-C++
  20. 并发批量管理500台以上服务器脚本分享(shell版)

热门文章

  1. bulldog渗透总结
  2. 计算机研究生要发论文,电子科大毕业计算机研究生需要发表论文吗
  3. 前端笔记(11) Vue3 Router 编程式导航 router.push router.replace
  4. linux Mint桌面美化
  5. react native 添加自定义字体
  6. 京东大客户开放平台VOP接口对接记录
  7. 从0开始学Git——Git的常用配置
  8. Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “/zhu“
  9. 微信小程序开发实例:猜数字小游戏
  10. 聊天室之-----界面的问题用到的curses