JMagick在linux下的安装和使用
准备如下包:
freetype-2.1.10.tar.gz
ImageMagick-6.2.6.tar.gz
jasper-1.900.1.zip
JMagick-6.2.6-0.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.2.12.tar.gz
tiff-3.8.2.tar.gz
版本之间相互匹配才能使用,无须下载最新版本
本实例的相关包见附件。
1.安装libpng
tar -xzvf libpng-1.2.12.tar.gz
cd ibpng-1.2.12
./configure
make
make install
检查是否安装完成
rpm -qa | grep libpng
2.安装libjpeg
tar -xzvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure
make
make install
提示user/local/man/man1目录不存在,安装失败
mkdir /usr/local/man/man1
继续执行:
make install
检查是否安装完成
rpm -qa | grep libjpeg
3.安装libtiff
tar -xzvf tiff-3.8.2.tar.gz
cd tiff-3.8.2
./configure
make
make install
检查是否安装完成
rpm -qa | grep libtiff
4.安装jasper
unzip jasper-1.900.1.zip
cd jasper-1.900.1
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
检查是否安装完成
rpm -qa | grep jasper
5.安装freetype
tar -xzvf freetype-2.1.10.tar.gz
cd freetype-2.1.10
./configure
make install
检查是否安装完成
rpm -qa | grep freetype
6.安装ImageMagick
tar xzvf ImageMagick-6.2.6.tar.gz
cd ImageMagick-6.2.6
./configure --prefix=/opt/ImageMagick-6.2.6 --enable-share --enable-static --with-jpeg=yes --with-png=yes --with-tiff=yes --with-jp2=yes --without-perl
make
Magick++/lib/Image.cpp: In function 'void Magick::InitializeMagick(const char*)':
Magick++/lib/Image.cpp:3811: error: 'atexit' was not declared in this scope
make: *** [Magick++/lib/Image.lo] 错误 1
后来发现原来是gcc版本的问题。 我自己的笔记本的gcc版本比较新,对于旧的写法有些不兼容。
旧的版本gcc某些不需要明确的声明include的地方,在新的gcc中不再支持,必须明确的声明。
进入ImageMagick目录下的Magick++/lib目录下,编辑Image.cpp文件,在头部include声明的代码中增加一行:
#include <stdlib.h>
重新make就可以了。
make
make install
检查是否安装成功:
cd /home/ImageMagick-6.8.6/bin
./convert -resize 50x50 test.jpg new.jpg
7.安装JMagick
tar xzvf JMagick-6.2.6-0.tar.gz
cd JMagick-6.2.6-0
autoconf
./configure --prefix=/opt/JMagick --with-magick-home=/opt/ImageMagick-6.2.6 --enable-share --enable-static --with-java-home=/home/jdk1.6.0_13
make all
make install
make test
生成/opt/JMagick文件夹lib下有jmagick.jar,libJMagick.so
拷贝jmagick.jar,libJMagick.so到如下目录:
1.WEB容器的lib下,如:/home/resin-3.1.12/lib,/home/tomcat-6.0.5/lib
2.JDK的lib下,/home/jdk1.6.0_13/lib
3.ImageMagick的lib下,/opt/ImageMagick/lib
8.配置环境变量
export PATH=$PATH:/opt/ImageMagick/bin
export LD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib
export DYLD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib
export CLASSPATH=$CLASSPATH:/opt/JMagick/lib
9.使用时注意:在Web Application Server(Resin,Tomcat),需要再运行时加入参数: -Djmagick.systemclassloader=no
或者在程序中写入:System.setProperty("jmagick.systemclassloader", "no");
10.异常
magick.MagickException: Cannot obtain image handle
这个异常出现的情况有很多种,有可能是图片的路径不对,也有可能环境变量配置不正确,也有可能是内部程序异常。
使用过程中异常的常见的出现次序:
(1)java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo (环境变量、lib下对应的Jar相关)
(2)java.lang.UnsatisfiedLinkError: no JMagick in java.library.path (Resin,Tomcat的lib下无jmagick.jar,libJMagick.so文件相关)
(3)magick.MagickException: Cannot obtain image handle (多种情况!)
分享到:
相关推荐
- 由于JMagick依赖底层库,因此在不同操作系统上的安装和使用可能会有所不同。 - 在使用JMagick时,注意内存管理和性能优化,避免处理大型图像时出现性能瓶颈。 **5. 进阶学习资源** - JMagick官方文档:了解详细的...
本文将详细介绍如何在Java环境中安装和配置JMagick,以及如何使用提供的示例进行测试。 ### 1. 获取必备组件 首先,你需要下载以下两个关键组件: - **jmagick.dll**: 这是JMagick的核心动态链接库,它提供了Java...
本文将深入探讨Jmagick的32位和64位版本,以及它们在不同环境下的应用。 1. **Jmagick的32位与64位** Jmagick的32位版本适用于运行在32位操作系统上的Java应用程序,而64位版本则用于64位操作系统的环境。两者的...
如果没有安装,那么在Linux安装光盘找到相应rpm包安装上, 再次configure直到确认需要的图形格式全部支持为止,然后编译安装: *-----------/ *安装jpeg包: http://www.ijg.org/files/jpegsrc.v6b.tar.gz tar -...
里面包括jmagick 所需所有文件,jmagick.dll,jmagick.jar 还有安装文件, 以及linux安装说明! jmagick jmagick.jar jmagick资料 jmagick缩略图 jmagick jmagick.jar jmagick资料 jmagick缩略图
jmagick image generate or operator library
在64位Linux环境下安装ImageMagick,特别是与JMagick配合使用,是一个涉及多个步骤的过程,主要目的是为了实现Java应用程序对ImageMagick图像处理功能的调用。以下是详细的安装步骤和相关知识点: 1. **卸载旧版本*...
综合这些信息,我们可以了解到这是一个关于在Windows和Linux环境下使用JavaMagick和ImageMagick进行图像处理的资源包,包含了必要的库文件、安装程序、使用教程以及配置选项。对于需要在Java项目中进行图像操作的...
3. **易用性**:JMagick简化了在Java中进行复杂图像处理的工作,开发者无需了解ImageMagick的底层实现,只需使用Java API即可。 4. **性能**:虽然通过JNI调用C/C++代码会有一定的性能损失,但JMagick允许Java应用...
本文将详细讲解如何在Windows和Linux环境下,通过Java使用ImageMagick库来支持和转换HEIC图片格式。 ImageMagick是一个开源的命令行工具集合,用于读取、转换和写入多种图像格式。在Linux系统中,为了使ImageMagick...
在Windows环境下,安装JMagick需要以下几个步骤: 1. 首先,你需要下载并安装ImageMagick。你可以从官方网站`http://www.imagemagick.org/script/index.php`获取最新版本的安装程序,例如`ImageMagick-6.2.6-8-Q16-...
这个DLL文件是JMagick在Windows环境下的实现,通过它,Java应用程序可以无缝地访问ImageMagick的图像处理能力。 使用ImageMagick时,用户需要注意的是,尽管它功能强大,但如果不正确配置或使用,可能会对系统安全...
因为im4java是基于imagemagick的commandline进行调用的java接口,不...其实安装imagemagick在任何平台都是一样的安装,在linux下面有rpm包,安装那个包,指定目录就可以了。windows一样,安装并指定安装路径就可以了。
// 注意:在Linux环境下不要设置searchPath,否则会导致错误 convert.setSearchPath("D:/Program Files/ImageMagick-6.3.9-Q16"); convert.run(op); } public Ima4JavaMagickCreator() {} public Ima4...
7. **跨平台**:由于基于Java,"ImDa-开源"应当具备跨平台的能力,能够在Windows、Linux和Mac OS等操作系统上运行。 8. **文档与支持**:项目可能有一个wiki页面,详细介绍了软件的主要功能、使用方法、常见问题...
Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua, NMagick (Neko/haXe), Magick.NET...