php+ImageMagick+imagick API 配置指南
先去下载相关的软件:
ImageMagick 5.5.7
ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-5.5.7-15.tar.gzimagick:A native PHP-extension to ImageMagick
wget http://pecl.php.net/get/imagick-0.9.8.tgz
![]()
怎么你不知道ImageMagick是什么,不妨到这里看看ImageMagick的魅力
使用 ImageMagick 进行翻转、缩放大小、旋转以及更多操作
ImageMagick学习
怎么样ImageMagick比GD还强大吧,那好我们就来安装它。
我们今天要讲的就是直接使php支持ImageMagick,而不是用ImageMagick的命令行来进行图形转换。
tar ImageMagick-5.5.7-15.tar.gz
cd ImageMagick-5.5.7
./configure \
LDFLAGS="-L/usr/lib" CPPFLAGS="-I/usr/include" \
--prefix=/usr/local/ImageMagick \
--enable-shared \
--enable-lzw
make
make install
更多参数大家看编译帮助。
对了,忘了跟大家说,最好不要用redhat自带的ImageMagick-devel包,还是自己编译的好,否则你在编译php的时候会被搞死,我可是说在前头了,出了问题不要怪我没说哦:)
要加入ImageMagick针对php的API。那么我们需要两次编译php,php第一次编译后,会产生我们编译API所需的phpize这个程序。第一次编译不讲了,跟后面第二次编译基本差不多。
在php的源代码目录
1。mkdir ext/ imagick
2。然后把imagick-0.9.8.tgz解压到ext/ imagick目录下
3。运行命令phpize
4。cd php源代码根目录
5。rm configure
6。./buildconf --force #好像不加--force不让重新产生configure文件
下面就是php的第二次编译
./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-imagick=/usr/local/ImageMagick
--with-apxs=/usr/local/apache/bin/apxs
make
make install
至于php的其他参数大家适当添加就行。
好了写个php的测试程序
<?php
phpinfo();
?>
恭喜你,安装成功了,去享受ImageMagick的巨大功能
baomm:
我也曾经看到这个错误,有几种可能ImageMagick或者api版本太高,另外也有可能是php版本太高的缘故,不过不是所有机器都编译不过,我的就用4.3.6编译成功,不过不少用4.3.6编译的朋友就碰到你类似的问题
我按照您说的方法编译,结果出现了下列错误,不知道是什么原因:
ext/imagick/imagick.lo: In function `zif_imagick_setfontsize':
/home/php-4.3.6/ext/imagick/imagick.c:2327: undefined reference to `DrawSetFontSize'
ext/imagick/imagick.lo: In function `zif_imagick_setfontstyle':
/home/php-4.3.6/ext/imagick/imagick.c:2368: undefined reference to `DrawSetFontStyle'
ext/imagick/imagick.lo: In function `zif_imagick_setfontface':
/home/php-4.3.6/ext/imagick/imagick.c:2410: undefined reference to `DrawSetFont'
ext/imagick/imagick.lo: In function `zif_imagick_begindraw':
/home/php-4.3.6/ext/imagick/imagick.c:2471: undefined reference to `DrawAllocateWand'
ext/imagick/imagick.lo: In function `zif_imagick_drawannotation':
/home/php-4.3.6/ext/imagick/imagick.c:2532: undefined reference to `DrawAnnotation'
/home/php-4.3.6/ext/imagick/imagick.c:2534: undefined reference to `DrawRender'
ext/imagick/imagick.lo: In function `zif_imagick_drawrectangle':
/home/php-4.3.6/ext/imagick/imagick.c:2578: undefined reference to `DrawRectangle'
/home/php-4.3.6/ext/imagick/imagick.c:2581: undefined reference to `DrawRender'
ext/imagick/imagick.lo: In function `zif_imagick_drawellipse':
/home/php-4.3.6/ext/imagick/imagick.c:2627: undefined reference to `DrawEllipse'
/home/php-4.3.6/ext/imagick/imagick.c:2630: undefined reference to `DrawRender'
ext/imagick/imagick.lo: In function `zif_imagick_drawarc':
/home/php-4.3.6/ext/imagick/imagick.c:2676: undefined reference to `DrawArc'
/home/php-4.3.6/ext/imagick/imagick.c:2679: undefined reference to `DrawRender'
ext/imagick/imagick.lo: In function `zif_imagick_drawcircle':
/home/php-4.3.6/ext/imagick/imagick.c:2723: undefined reference to `DrawCircle'
/home/php-4.3.6/ext/imagick/imagick.c:2726: undefined reference to `DrawRender'
ext/imagick/imagick.lo: In function `zif_imagick_drawline':
/home/php-4.3.6/ext/imagick/imagick.c:2770: undefined reference to `DrawLine'
/home/php-4.3.6/ext/imagick/imagick.c:2773: undefined reference to `DrawRender'
ext/imagick/imagick.lo: In function `zif_imagick_drawpoint':
/home/php-4.3.6/ext/imagick/imagick.c:2814: undefined reference to `DrawPoint'
/home/php-4.3.6/ext/imagick/imagick.c:2816: undefined reference to `DrawRender'
ext/imagick/imagick.lo: In function `zif_imagick_setfillcolor':
/home/php-4.3.6/ext/imagick/imagick.c:2872: undefined reference to `DrawSetFillColor'
ext/imagick/imagick.lo: In function `zif_imagick_setfillopacity':
/home/php-4.3.6/ext/imagick/imagick.c:2912: undefined reference to `DrawSetFillOpacity'
ext/imagick/imagick.lo: In function `_php_imagick_clean_up_handle':
/home/php-4.3.6/ext/imagick/imagick.c:5532: undefined reference to `DestroyDrawingWand'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
我是在RH2.1下,PHP4.3.6 PHP编译选项如下:
./configure --with-mysql --with-apxs --enable-fastcgi --with-zlib --enable-exif --with-gd=/usr/local/lib --enable-sysvmsg --enable-sockets --enable-sysvshm --enable-sysvsem --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --disable-inline-optimization --enable-ftp --with-ttf=/usr/local/bin --with-imagick=/usr/local/ImageMagick
美洲豹:
你看看你的api的源码包,里面就带着例子,没发现,哈哈
怎么搞?我都装好了,
就是不会使用那些函数,有没有一些例子给我看看啊?
我怎么安装不成功?php4.3.4,apache1.3.29,为什么?
Posted by: optix at February 9, 2004 11:22 AM有呀,我记得mt有个mt-check.cgi,只要那里探测出Magick版本就可以,你只要装redhat的rpm包就行。
我这篇文章是介绍如何让php直接支持imagick,跟mt还是没有关系的。
那麼,裝上imagemagick後,設定好mt.cfg以支持它後,你在mt上傳介面上有看到縮圖的選項了嗎?
Posted by: 酋長 at February 6, 2004 10:56 AM我用的Mandrake, 使用urpmi就可以直接加上PHP extensions, 不需要重新编译了
urpmi php-imagick