繁体   English   中英

在 xampp Windows 上安装 imagick 库扩展?

[英]Installing imagick library extension on xampp Windows?

我必须将 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 .dll)获得的二进制文件。
    11/23/2017 3:58 PM 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'; ?>来测试这个库<?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'; ?> <?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'; ?> <?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 中的扩展)产生的: 在此处输入图片说明

有没有人可以就如何使这项工作提出任何建议?

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

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

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

您可以在行中添加任何您想要的内容。

您还可以从命令行运行:

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

编辑以回答评论:

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

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

不确定在这里发布链接,但请查看我的个人资料

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM