WINDOW 安装ImageMagick服务端和PHP的imagick插件

写在最前:

windows下要注意的就是ImageMagick版本要与php扩展的Imagick能对应上,同时Imagick版本的选择也要与服务器环境以及php的情况对应上,不然就容易安装失败,我就是在这里踩坑无数的

php_imagick-3.4.3支持的版本是6.9.3-6.9.7,可以往下支持,但不能往上,因此要找6.9.7以下的ImageMagick软件版本,所以要根据这个版本去找对应的软件版本,不然会导致扩展不能识别ImageMagick软件的情况

 

电脑系统win10 64位,php运行环境:nginx+php7.1 

1. 下载 ImageMagick 

由于官网下载php_imagick-3.4.3需要imagemagick6.9.3到6.9.7版本,官网的地址截止目前只有7.0版本以上的下载,但我们的扩展是不支持这么高的版本的,提供下载地址:

 https://download.csdn.net/download/a724008158/10427649(本文安装x86版本)

2. 安装 ImageMagick 

安装是很简单的,只要双击,选择安装的目录,windows的话推荐安装到D盘,最好不要安装到C盘,然后不断点击下一步就可以了,它会选中自动打钩的部分,不要去改动

3. 测试安装 

打开windows 命令行窗口 cmd 输入convert,回车。会出现convert的帮助文档,如果没有出现,说明没有安装成功,或没有把安装目录添加到环境变量 path 中。 

添加到环境变量,如我的 ImageMagick 安装目录是 d:/imagemagick。 

添加过程: 

我的电脑 -> 右键点击 -> 高级系统设置 -> 高级 -> 环境变量 -> 系统变量 -> path -> 选择并编辑 -> 把你的安装目录,添加到其中

设置环境变量win10设置方法参考(win7自行百度):

4. 下载 php扩展 php_imagick.dll 

LINUX下载地址:http://pecl.php.net/package/imagick

WINDOW下载地址: http://pecl.php.net/package/imagick/3.4.3/windows

我这里下载的是NTS X86版:php_imagick-3.4.3-7.1-nts-vc14-x86.zip

下载后,里面有CORE_RL..开头的好几个DLL库文件,和php_imagick.dll,

把CORE_RL..开头的文件复制到PHP安装目录下第一层即php.exe同级目录,php_imagick.dll复制到php的ext目录下

5. 把dll文件放到php 扩展文件目录 php/ext 中。

把extension=php_imagick.dll加入php.ini后重启:

 如果报错是:“php.exe - 系统错误 ,无法启动此程序因为计算机丢失CORE_RL_wand_.dll ” , 说明你没有将 php_imagick-3.4.3-7.1-nts-vc14-x86.zip 扩展包中的“CORE_*.dll” 这些dll文件 放到 你的php.exe同级目录下。   ,只需要拷贝 CORE_*.dll 到php目录就可以解决了。

6. 重启NGINX/apache。 重启后,打开phpinfo页面,扩展已经安装成功。

如出现以下图片,ImageMagick number of supported formats显示是0,则表示版本不对,或需要将  ImageMagick安装目录\modules\coders设置位环境变量

正确的安装成功显示如下:

 

7. PHP测试代码。

<?php

$im = new imagick( 'a.jpg' );

// resize by 200 width and keep the ratio

$im->thumbnailImage( 200, 0);

// write to disk

$im->writeImage( 'a_thumbnail.jpg' );

 

注意:如出现以下错误,Fatal error: Uncaught ImagickException: NoDecodeDelegateForThisImageFormat ....

则表示版本号不对,ImageMagick number of supported formats显示是0导致,具体错误例子如下

posted @   一个人的孤独自白  阅读(786)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示