php - 在 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
在我的 Windows 10 电脑上安装了 imageMagick(ImageMagick-7.0.10-0-Q16-x64-dll.exe)(在检查
magick -version
并能够显示安装在电脑上的 imageMagick 版本。)将 php_imagick.dll 添加到我从 PHP PECL 网站获得的 xampp/php/ext 中。3.4.4 稳定 2019-05-02 imagick-3.4.4.tgz (247.5kB) DLL
通过 extension=imagick 启用 php.ini 文件的扩展
添加了我从 PECL DEPS(IMO 和 CORE .dlls)获得的二进制文件。
2017 年 11 月 23 日下午 3:58 47633113 ImageMagick-7.0.7-11-vc15-x64.zip
运行 phpinfo() 后,它显示以下项目:
我决定使用代码测试库,
<?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'; ?>
但网页是空白的。我尝试将 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"
编辑以回答评论:
我有两个使用 exec() 直接在 php 中使用 Imagemagick 的网站。我不使用 Imagik,因为我发现 Imagemagick 更简单,而且它有更多选择。Imagick 应该更安全,更快捷。在服务器上,你会使用这样的东西:
exec("magick -density 400 \"Path\to\input.pdf\" \"Path\to\output.png\" ");
不确定是否在此处发布链接,但请查看我的个人资料
推荐阅读
- r - 检查向量中的连续元素
- sockets - 如何检查打开的端口是 TCP 还是 UDP?
- python - 在 python 中使用三个数据框重新编码
- python - 酸洗/缓存 PyFMI FMUModel 对象
- anylogic - Anylogic-作业车间调度
- laravel - 如何使用 Storage 获取文件作为资源?
- typescript - 打字稿如何在联合中找到与另一个对象文字匹配的类型?
- python - Pyspark 数据帧按字母顺序拆分并写入 S3
- mysql - MySQL慢速左连接排序
- ubuntu - 如何更改 DigitalOcean 中的 phpmyAdmin 访问 url?