我有默认情况下附带 ImageMagick 6.9.7 的 Ubuntu 18.04.1 LTS,我希望 ImageMagick 处理 jp2 图像,所以我安装了 libopenjp2-7-dev 并从源代码安装了 imagemagick7,如下所示:
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
tar xvzf ImageMagick.tar.gz
cd ImageMagick-7.0.10-22
./configure
make
sudo make install
sudo ldconfig /usr/local/lib
magick -version
显示正确的:
Version: ImageMagick 7.0.10-22 Q16 x86_64 2020-07-02 https://imagemagick.org
Copyright: © 1999-2020 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): jng jp2 jpeg png xml zlib
但phpinfo()
其中显示:
imagick module version 3.4.4
imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
Imagick using ImageMagick library version ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
我什至试图删除ImageMagick 6.9.7和PHP-Imagick扩展,我认为通过重新安装只有一个可用版本的扩展,它会以某种方式指向那个,但是如果没有 ImageMagick6 就无法安装扩展。我不知道如何让 PHP 使用 ImageMagick 7。
我认为你现在被 ImageMagick v6.x 困住了。这里重要的是
imagick
模块本身。无论您系统上的 ImageMagick 版本如何,imagick 模块 v3.4.4 仅支持 ImageMagick 版本 6.x。来自PECL imagick 网站(PHP 扩展社区库):
链接: http: //pecl.php.net/package/imagick/3.4.4
您可以通过首先在您的系统上安装 ImageMagick 7,然后编译 repo ( https://github.com/Imagick/imagick ) 上提供的 PHP imagick 扩展来将 ImageMagick 7 与 PHP 一起使用:
编译并安装 ImageMagick 7:
编译和安装 PHP imagick:
PHP 使用的版本可以通过在 PHP 中调用 Imagick::getVersion() 来验证