php7.2 如何安装imagick扩展

imagick扩展包地址:

https://pecl.php.net/package/imagick

1、安装所需依赖,如果在编译时还提示缺少其他依赖,请自行安装

yum install autoconf gcc gcc-c++ ImageMagick-devel

2、下载imagick最新稳定版 (截止20200831 最新版本是3.4.4)

wget https://pecl.php.net/get/imagick-3.4.4.tgz

tar xf imagick-3.4.4.tgz

cd imagick-3.4.4

/usr/local/php/bin/phpize

根据自己phpize的位置来运行即可(不知道phpize在哪的直接find / -name phpize查找),运行完提示下面信息,然后编译

Configuring for:

PHP Api Version: 20160303

Zend Module Api No: 20160303

Zend Extension Api No: 320160303

3、编译扩展模块

./configure --with-php-config=/usr/local/php/bin/php-config

make

make install

执行完成后会显示扩展模块编译到的目录/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

4、修改php.ini添加扩展

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/"

extension=imagick.so

注意:如果之前配置过extension_dir路径了,则只需要配置extension=imagick.so即可

保存退出,重启php
 

但是出现一个奇怪的错误:

checking ImageMagick MagickWand API configuration program... configure: error: not found. Please provide a path to MagickWand-config or Wand-config program.
ERROR: `/tmp/pear/temp/imagick/configure --with-imagick' failed 

查了一些资料才知道原来是没有安装ImageMagick-devel包,注意ImageMagick-devel并不是ImageMagick,ImageMagick-devel是用于 ImageMagick 程序开发的静态库和头文件。所以Imagick也是基于此开发,必不可少咯。而ImageMagick是用来显示和操作图像的 X 应用程序,之前已经安装过。

yum install ImageMagick-devel  ( debian系统使用:sudo apt-get install imagemagick libmagickwand-dev )

即可安装ImageMagick-devel

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

示例代码:

<?php
/**
 * Created by graph-design-api.
 * AUTHOR: daiguojin
 * Date: 2020/10/29 15:13
 */

try {
    $im = new \Imagick();
    $svg = file_get_contents("./Plant_004.svg");
    $p = '/^(.*)width=([\'\"])([\d\.]+)(\w+)([\'\"])(.*)height=([\'\"])([\d\.]+)(\w+)([\'\"])(.*)$/';
    if (preg_match($p, $svg)) {
        $svg = preg_replace($p, "$1width=$2$3$5$6height=$7$8$10$11", $svg);
    }
    $im->readImageBlob($svg);
    $im->setImageFormat("png24");
    $srcImage = $im->getImageGeometry();
    $im->resizeImage(100, 100, \Imagick::FILTER_LANCZOS, 1, TRUE);
    $im->writeImage('output.png');
    $im->clear();
    $im->destroy();
} catch (\Exception $e) {
    die($e->getMessage());
}

如果报:

unable to load module `/usr/lib64/ImageMagick-6.9.10/modules-Q16/coders/svg.la': file not found @ error/module.c/OpenModule/1316

多半是依赖没装好,按下面的步骤重装:

1.安装依赖ImageMagick

 

下载地址:http://www.imagemagick.org/download/releases/

 

cd /usr/local/src
wget http://www.imagemagick.org/download/releases/ImageMagick-6.9.10-33.tar.xz
tar xf ImageMagick-6.9.10-33.tar.xz
cd ImageMagick-6.9.10-33
./configure --prefix=/usr/local/imagemagick
make && make install

 

2.安装imagick
在这里查到下载页面
https://pecl.php.net/packages.php

 

下载页面:https://github.com/Imagick/imagick/releases

 

cd /usr/local/src
wget http://pecl.php.net/get/imagick-3.4.4.tgz
tar xf imagick-3.4.4.tgz
cd imagick-3.4.4
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick/
make && make install

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴国进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值