`
willvvv
  • 浏览: 333143 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一、GraphicsMagick和pgmagick的安装使用

阅读更多

操作系统CentOS release 5.3 (Final),gcc (GCC) 4.2.4

 

1.安装GraphicsMagick。

先从http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.16/ 下载最新源码包,存放在/usr/local/src目录

 

yum install freetype
yum install gd-devel
yum install libgomp 
yum install libjpeg libjpeg-devel
yum install libpng libpng-devel
cd /usr/local/src
tar zvxf GraphicsMagick-1.3.16.tar.gz
cd GraphicsMagick-1.3.16
./configure --enable-shared=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --disable-openmp
make
make install

 

注意:必须安装libjpeg, libjpeg-devel和libpng,libpng-devel,在configure之后观察输出,确保下图红色区域值为yes!


 

安装之后,在命令行测试

 

gm convert a.jpg -thumbnail '100x100' a100.jpg

把a.jpg缩放成100x100大小的a100.jpg,可以把两张图复制到windows下查看。

 

2.安装pgmagick。

http://pypi.python.org/pypi/pgmagick/ 下载 pgmagick-0.5.1.tar.gz,存放在/usr/local/src目录

执行以下命令:

tar zvxf pgmagick-0.5.1.tar.gz
cd pgmagick-0.5.1
python setup.py install

 

此时报错如下:


/usr/include/boost/python/converter/registered.hpp:88: error: no matching function for call to 'registry_lookup (const volatile void (*)())'

 

原因和解决方法如下:

Scons/Boost/Python no longer supports void*.
when compiling PythonMagick, upgrade your Boost Python to 1.34

remove all the pre-compiled boost rpms from the system
remove all the pre-compiled GraphicsMagick rpms from the system
compile boost-1.49.0 manually, using ./configure --prefix=/usr --enable-shared=yes
reinstall GraphicsMagick-1.3.14, GraphicsMagick-c++-1.3.14, GraphicsMagick-devel-1.3.14 and GraphicsMagick-c++-devel-1.3.14 via yum
clone the pgmagick repository from bitbucket
run python setup.py install again within the pgmagick directory
 

http://stackoverflow.com/questions/10110378/how-to-build-pgmagick-on-linux-centos

 

http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=7213&p=22507&hilit=registry_lookup#p22507

虽然是imagemagick的,但是两者很类似,于是升级Boost。

http://sourceforge.net/projects/boost/files/boost/1.50.0/ 这里下载最新的boost。

 

注意:安装boost时必须先卸载系统自带的boost!

查看系统装的rpm包boost相关包

rpm -qa|grep boost
以下为输出:
boost-1.33.1-10.el5
boost-devel-1.33.1-10.el5 

 

使用rpm -e卸载相关包

rpm -e boost-1.33.1-10.el5

 

根据http://www.boost.org/doc/libs/1_50_0/more/getting_started/unix-variants.html#easy-build-and-install   安装boost。

 

安装之后再安装pgmagick,提示以下内容说明安装成功:

 

creating dist
creating 'dist/pgmagick-0.5.1-py2.7-linux-i686.egg' and adding 'build/bdist.linux-i686/egg' to it
removing 'build/bdist.linux-i686/egg' (and everything under it)
Processing pgmagick-0.5.1-py2.7-linux-i686.egg
Copying pgmagick-0.5.1-py2.7-linux-i686.egg to /usr/local/lib/python2.7/site-packages
Adding pgmagick 0.5.1 to easy-install.pth file

Installed /usr/local/lib/python2.7/site-packages/pgmagick-0.5.1-py2.7-linux-i686.egg
Processing dependencies for pgmagick==0.5.1
Finished processing dependencies for pgmagick==0.5.1
 

在python命令行验证一下:

>>> from pgmagick import Image, FilterTypes
>>> im = Image('input.jpg')
>>> im.quality(100)
>>> im.filterType(FilterTypes.SincFilter)
>>> im.scale('100x100')
>>> im.sharpen(1.0)
>>> im.write('output.jpg')

 

注意:刚安装完pgmagick,输入from pgmagick import Image, FilterTypes,会提示:ImportError: cannot import name _pgmagick,ctrl+D退出终端再登陆后再执行就ok了!

 

参考链接:

http://blog.csdn.net/hairetz/article/details/6367212

http://rhaseventh.blogspot.com/2008/10/rmagick2so-shared-object-cannot-be.html

http://pypi.python.org/pypi/pgmagick/

  • 大小: 12.2 KB
分享到:
评论
4 楼 michael_leigh 2012-07-30  
willvvv 写道
michael_leigh 写道
请教一下,我更新完boost以后,执行rpm -qa|grep boost ,看不到输出,正确吗?

另外,python setup.py install  以后,提示:
/usr/bin/ld: /usr/local/lib//libGraphicsMagick++.a(Blob.o): relocation R_X86_64_32 against `vtable for Magick::Blob' can not be used when making a shared object; recompile with -fPIC

这个-fPIC参数应该加在哪里啊?


更新完boost执行rpm -qa|grep boost,看不到输出可能是正确的,因为你更新boost的方式应该不是直接使用rpm -ivh 安装的rpm包,而是直接使用源码编译安装的。

请问你的linux操作系统是什么版本?centos?版本号多少?我在centos6上面安装的时候就没有出现boost版本过低的问题。



多谢willvvv的提示,我最近就是点儿背,什么错误都能碰到,权当做个错误提示的补充吧
3 楼 michael_leigh 2012-07-27  
折腾了3天终于解决了,
系统是 CentOS release 5.5 (Final),64位的
因为GraphicsMagick是公司其他的人安好的,我试了一下没问题,然后就开始装pgmagick
噩梦就开始了,反复出现这两个错误
/usr/include/boost/python/converter/registered.hpp:88: error: no matching function for call to 鈥榬egistry_lookup(const volatile void (*)())鈥
error: command 'gcc' failed with exit status 1

/usr/bin/ld: /usr/local/lib//libGraphicsMagick++.a(Blob.o): relocation R_X86_64_32 against `vtable for Magick::Blob' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib//libGraphicsMagick++.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
error: command 'c++' failed with exit status 1

按照willvvv的提示,我这里却一直不顺:
首先是系统的boost不知道为什么装了多个,用rpm -qa|grep boost 出来4个,需要用--allmatches参数卸载;
中间好像64位的lib引用还出了些问题;
GraphicsMagick的编译需要加上CFLAGS="-O3 -fPIC" ./configure参数
域名解析也不行,让sa重新给设置了一下,
今天告诉我好了以后,却发现boost又回去了;
最后还是按照
http://stackoverflow.com/questions/10110378/how-to-build-pgmagick-on-linux-centos
里面unpluggd说的,把从pgmagick、GraphicsMagick、boost都删了,重新开始一边,才装好的。
2 楼 willvvv 2012-07-19  
michael_leigh 写道
请教一下,我更新完boost以后,执行rpm -qa|grep boost ,看不到输出,正确吗?

另外,python setup.py install  以后,提示:
/usr/bin/ld: /usr/local/lib//libGraphicsMagick++.a(Blob.o): relocation R_X86_64_32 against `vtable for Magick::Blob' can not be used when making a shared object; recompile with -fPIC

这个-fPIC参数应该加在哪里啊?


更新完boost执行rpm -qa|grep boost,看不到输出可能是正确的,因为你更新boost的方式应该不是直接使用rpm -ivh 安装的rpm包,而是直接使用源码编译安装的。

请问你的linux操作系统是什么版本?centos?版本号多少?我在centos6上面安装的时候就没有出现boost版本过低的问题。
1 楼 michael_leigh 2012-07-18  
请教一下,我更新完boost以后,执行rpm -qa|grep boost ,看不到输出,正确吗?

另外,python setup.py install  以后,提示:
/usr/bin/ld: /usr/local/lib//libGraphicsMagick++.a(Blob.o): relocation R_X86_64_32 against `vtable for Magick::Blob' can not be used when making a shared object; recompile with -fPIC

这个-fPIC参数应该加在哪里啊?

相关推荐

    GraphicsMagick-1.3.40安装包

    首先,你需要解压此文件,然后通过编译和安装步骤来构建和安装GraphicsMagick。这通常涉及`tar -zxvf GraphicsMagick-1.3.40.tar.gz`来解压,`./configure`来配置,`make`来编译,以及`sudo make install`来安装。...

    GraphicsMagick在Linux环境的安装

    在Linux环境中安装GraphicsMagick是一项常见的任务,尤其对于开发者和系统管理员来说,它能帮助他们快速地对图像进行转换、裁剪、缩放等操作。下面将详细介绍在Linux环境下安装GraphicsMagick的过程。 首先,确保你...

    GraphicsMagick-1.3.25-Q8-win64-dll Windows 64位安装版

    GraphicsMagick是一款强大的开源图像处理工具,它支持多种操作系统,包括Windows、Linux和macOS等。这个"GraphicsMagick-1.3.25-Q8-win64-dll Windows 64位安装版"是专为64位Windows系统设计的版本,提供了图形库和...

    使用GraphicsMagick处理图片含Demo

    这个类中的`addWatermark`方法接收源图片路径、目标图片路径和水印文本作为参数,构建GraphicsMagick的命令,并使用Java的`ProcessBuilder`启动外部进程执行命令。通过这种方式,Java程序可以便捷地利用...

    GraphicsMagick-1.3.33.zip

    解压这个文件后,用户可以获取GraphicsMagick的源代码,然后通过编译和配置来在自己的系统上构建和安装它。 2. **GraphicsMagick-1.3.33-Q16-win64-dll.exe**:这是为Windows 64位系统准备的二进制可执行文件,包含...

    GraphicsMagick

    GraphicsMagick是一个强大的开源图像处理工具,它提供了一系列命令行工具和C API,使得开发者能够进行各种复杂的图像操作,如转换、编辑、合成以及处理大量图像。GraphicsMagick支持超过80种文件格式,包括常见的...

    GraphicsMagick安装包

    要使用im4java,你需要先将其解压,然后按照其README文件的指示进行构建和安装。通常,这涉及到使用`mvn install`命令,如果你已经安装了Maven。 以下是一个简单的Java代码示例,展示如何使用im4java来转换图像: ...

    使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放

    "使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放" 在互联网快速发展的今天,图片...使用Tengine+Lua+GraphicsMagick实现图片自动裁剪缩放是一种高效、灵活和可扩展的解决方案,适用于大量图片加载的网站和应用。

    nginx-lua-GraphicsMagick

    为了提高图片处理效率并减轻服务器负担,我们可以利用Nginx的Lua模块与GraphicsMagick工具来构建一个动态的图片切割和缩放服务。下面我们将详细讲解这个服务的搭建过程。 ### 1. 搭建GraphicsMagick服务 **...

    GraphicsMagick-1.3.30 for Linux

    安装过程涉及解压、配置、编译和安装等步骤,对于Linux用户来说,通常使用`tar`命令解压,`./configure`进行配置,`make`进行编译,最后`sudo make install`完成安装。这个过程中可能需要依赖一些库,如OpenSSL、...

    pgmagick是另一个基于boost.python的GraphicsMagickImageMagick包装器。.zip

    pgmagick是一个优秀的Python库,它是专门为Python开发者设计的,用于利用GraphicsMagick和ImageMagick的强大功能进行图像处理。该库的创建是基于Boost.Python库,这是一种在Python中无缝集成C++代码的工具,它允许...

    gm-GraphicsMagick和ImageMagick的node封装

    `GraphicsMagick`和`ImageMagick`是两个广泛使用的跨平台图像处理工具,它们提供了丰富的命令行接口来执行各种图像操作。然而,在Node.js环境中,直接使用这些命令行工具可能会显得不太方便。为了解决这个问题,`gm`...

    GraphicsMagick-1.3.35-win64

    GraphicsMagick是一个强大的开源图像处理工具,适用于多种操作系统,包括Windows、Linux和macOS等。在Windows平台上,GraphicsMagick提供了预编译的版本,如"GraphicsMagick-1.3.35-win64",这是一个64位版本,确保...

    GraphicsMagick-jpeg-png

    安装这两个依赖包的过程通常包括解压源代码、配置、编译和安装。例如: 1. 解压文件: ``` tar -zxvf libpng-1.4.16.tar.gz tar -zxvf libjpeg-6b.tar.gz ``` 2. 进入解压后的目录: ``` cd libpng-1.4.16 ...

    GraphicsMagick-1.3.31.tar.gz

    这种格式广泛用于Linux和类Unix系统中,便于下载和安装软件。`GraphicsMagick-1.3.31.tar.gz`表示这个压缩包包含了GraphicsMagick 1.3.31版本的所有源代码文件。 解压这个文件后,用户通常会得到一个名为`...

    GraphicsMagick+im4java.pdf

    短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理图像的读取、写入和操作,支持超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。 通过使用OpenMP可是利用多线程进行...

    GraphicsMagick-1.3.12-Q16-windows-dll.exe

    GraphicsMagick是一个短小精悍的的图片处理工具和库集合。对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;...

    GraphicsMagick-1.3.25-Q16-win32-dll.exe

    GraphicsMagick是一个强大的开源图像处理工具,用于读取、转换和写入多种图像格式。它在许多方面类似于著名的ImageMagick,但具有更高的性能和稳定性。这个特定的版本,"GraphicsMagick-1.3.25-Q16-win32-dll.exe",...

Global site tag (gtag.js) - Google Analytics