php功能扩展之ImageMagick

回复 收藏

   ImageMagickImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。

   ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。

   ImageMagick的大多数功能的使用都来源于命令行工具。通常来说,它可以支持以下程序语言: Perl, C, C++, Python, PHP, Ruby, Java;http://wiki.blueidea.com/index.php?title=分类:ImageMagick

   MagickWand 是PHP的一个扩展程序,通过它建立起与ImageMagick的交互,进行图片的处理。它是默认的GD图象函数库的绝佳替代方案。从安全性和易用性来说,在PHP中使用MagickWand比使用命令行ImageMagick要安全快捷的多。另外 imagick也可用于PHP中作为ImageMagick的替代方案。http://wiki.blueidea.com/index.php?title=MagickWand

   imagick 是PHP的一个扩展程序,它是默认的GD图象函数库的绝佳替代方案。面向对象的PHP编程使用非常方便。另外 MagickWand也可用于PHP中作为ImageMagick的替代方案。http://wiki.blueidea.com/index.php?title=imagick

   Provides a wrapper to the ImageMagick library.

Imagick is a native php extension to create and modify images using the ImageMagick API.

首先解决依赖依赖

yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel

1.ImageMagick安装

   此处选用6.9,使用7+版本时,在编译magickwand时会报错

imagemagick下载    https://www.imagemagick.org/download/

tar zxvf ImageMagick-6.9.6-5.tar.bz2
cd ImageMagick
./configure LDFLAGS="-L/usr/lib" CPPFLAGS="-I/usr/include" --prefix=/usr/local/ImageMagick6 --enable-shared --enable-lzw
make
make install

make时报错 

gcc: Internal error: Killed (program cc1)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[1]: *** [wand/wand_libMagickWand_6_Q16_la-convert.lo] Error 1

   在测试服务器做的编译,一直错误,一开始注意力集中在libMagickWand。但是查阅了一资料,发现MagickWand是在ImageMagick安装之后才能安装;为此纠结了好久。

   忙活了一上午,再次查看报错信息,决定从“gcc: Internal error: Killed (program cc1)”入手,终于找到了相关信息,初步判定为OOM内存溢出导致;

   为了验证,发现测试服务器(ECS)的内存就剩200M,并且没有swap。为此添加了swap,编译时发现swap迅速被占用,编译也OK了。

添加swap方法

mkdir -p /var/cache/swap/
dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=512
chmod 0600 /var/cache/swap/swap0
mkswap /var/cache/swap/swap0
swapon /var/cache/swap/swap0

如果编译完成想卸载swap,这个过程会有点慢,我用了接近一分钟

swapoff /var/cache/swap/swap0

2.MagickWand For PHP安装

magickwand主页    http://www.magickwand.org/ 

magickwand下载    http://www.magickwand.org/download/php/

unzip MagickWandForPHP-1.0.9-2.zip
cd MagickWandForPHP-1.0.9-2
/usr/local/php/bin/phpize
./configure --prefix=/usr/local/magickwand --enable-shared --with-php-config=/usr/local/php/bin/php-config --with-magickwand=/usr/local/ImageMagick6
make
make install

3.将编译成功的magickwand.so加入到php.ini中,

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension="magickwand.so"

重启apache服务器.

4 imagick安装

imagick下载    http://pecl.php.net/package/imagick

This extension requires ImageMagick version 6.5.3-10+ and PHP 5.4.0+

tar xf imagick-3.1.1.tar.gz
cd magick-3.1.1
/usr/local/php/bin/phpize
yum install ImageMagick-devel./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagickmakemake install

将编译成功的imagick.so加入到php.ini中,

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension="imagick.so"

重启apache服务器.

2016-11-18 16:36 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: