【发布时间】:2014-08-19 22:46:22
【问题描述】:
我已经在我的 MAMP 开发环境中安装了 Imagemagick 扩展,并且 PHP 信息显示 imagemagick 已正确安装。但是,我收到以下异常:
PHP 致命错误:带有消息的未捕获异常“ImagickException” '无法读取文件: /Applications/MAMP/htdocs/image/demo.pdf' 在 /Applications/MAMP/htdocs/image/index.php:8 堆栈跟踪: #0 /Applications/MAMP/htdocs/image/index.php(8): Imagick->__construct('/Applications/M...') #1 {主要} 在第 8 行的 /Applications/MAMP/htdocs/image/index.php 中抛出源代码:
$pdf_file = '/Applications/MAMP/htdocs/image/demo.pdf'; 回声 $pdf_file; $save_to = '/Applications/MAMP/htdocs/image/demo.jpg'; $img = new imagick($pdf_file); //减少尺寸 - 缩放将导致透明区域中的黑色 $img->scaleImage(800,0); //设置新格式 $img->setImageFormat('jpg'); //保存图片文件 $img->writeImages($save_to, false);编辑 1:
我正在使用brew 来管理包。
我的 MAMP 配置:
Imagick 扩展(php.ini):
[想象] 扩展="/usr/local/Cellar/php55-imagick/3.1.0RC2/imagick.so"环境变量:
路径:
/Applications/MAMP/Library/bin/envvars
内容:
#if test "x$DYLD_LIBRARY_PATH" != "x" ;然后 # DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" #别的 #DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib" #fi #export DYLD_LIBRARY_PATH #DYLD_LIBRARY_PATH="/Applications/MAMP/bin/ImageMagick/ImageMagick-6.8.9/lib:/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" #export DYLD_LIBRARY_PATH【问题讨论】:
-
您确定此文件存在(路径正确)吗?您是否尝试将不是 PDF 而是图像传递给构造函数?有没有错误?您也很可能需要使用
$img = new imagick(realpath($pdf_file));或者您没有安装 ghostscript 库 -
也可以试试相对路径 (
$_SERVER['DOCUMENT_ROOT'] . '/image/demo.pdf')。 -
@MarcinNabiałek 我检查了路径,它是正确的。我不确定ghostscript。但是,我可以通过命令行转换图像。
-
@Anam 你的意思是你可以把这个pdf转换成jpg?在 PHP 手册中有
For example, Imagemagick requires ghostscript to conduct PDF operations.所以你应该确保你已经安装了 ghostscript -
@MarcinNabiałek,我可以从命令行转换 pdf。因此,Ghostscript 已安装。
标签: php imagemagick mamp