首页 > 解决方案 > 在 xampp Windows 上安装 imagick 库扩展?

问题描述

我必须为论文项目将 pdf 转换为图像格式(jpg 或 png),并计划在 xampp 上安装 imagick 库,但事实证明这很棘手。顺便说一句,我目前拥有的 php 版本是PHP 7.4.3

我基于通过此链接安装 imagick 的步骤:https ://ourcodeworld.com/articles/read/349/how-to-install-and-enable-the-imagick-extension-in-xampp-for-windows 关于 PHP 的信息

  1. 在我的 Windows 10 电脑上安装了 imageMagick(ImageMagick-7.0.10-0-Q16-x64-dll.exe)(在检查magick -version并能够显示安装在电脑上的 imageMagick 版本。)

  2. 将 php_imagick.dll 添加到我从 PHP PECL 网站获得的 xampp/php/ext 中。3.4.4 稳定 2019-05-02 imagick-3.4.4.tgz (247.5kB) DLL

  3. 通过 extension=imagick 启用 php.ini 文件的扩展

  4. 添加了我从 PECL DEPS(IMO 和 CORE .dlls)获得的二进制文件。
    2017 年 11 月 23 日下午 3:58 47633113 ImageMagick-7.0.7-11-vc15-x64.zip

运行 phpinfo() 后,它显示以下项目:

imagick 库模块规范

  1. 我决定使用代码测试库, <?php $image = new Imagick(); $image->newImage(1, 1, new ImagickPixel('#ffffff')); $image->setImageFormat('png'); $pngData = $image->getImagesBlob(); echo strpos($pngData, "\x89PNG\r\n\x1a\n") === 0 ? 'Ok' : 'Failed'; ?> 但网页是空白的。

  2. 我尝试将 xampp/apache/bin 添加到 Windows 中的 PATH 以解决问题,但问题仍然存在。此外,这是 php intelephense(vscode 中的扩展)产生的: 在此处输入图像描述

有没有人可以就如何完成这项工作提供任何建议?

标签: phpimagemagickimagick

解决方案


为什么不直接使用 Imagemagick 呢?然后,您可以使用标准设置创建批处理文件,您可以将文件放入其中。您需要在 Imagemagick 和 Imagemagick 自动链接到它之前安装 Ghostscript

只要您允许它在安装期间设置环境变量,它就应该作为批处理文件工作:

magick -density 400 %1 "%~n1.png"

您可以将任何您想要的内容添加到该行。

您还可以使用以下命令从命令行运行:

 magick -density 400 "Path\to\input.pdf" "Path\to\th_%~n1.png"

编辑以回答评论:

我有两个使用 exec() 直接在 php 中使用 Imagemagick 的网站。我不使用 Imagik,因为我发现 Imagemagick 更简单,而且它有更多选择。Imagick 应该更安全,更快捷。在服务器上,你会使用这样的东西:

exec("magick -density 400 \"Path\to\input.pdf\" \"Path\to\output.png\" ");

不确定是否在此处发布链接,但请查看我的个人资料


推荐阅读