操作系统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
虽然是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