一、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!


安装之后,在命令行测试

扫描二维码关注公众号,回复: 831056 查看本文章
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/

猜你喜欢

转载自willvvv.iteye.com/blog/1574883