ick安装之ImagPHP扩展

最近工作项目中,有一个需求需要pdf文件转成图片格式。以下纪录PHP中使用imagick实现把PDF转成图片的操作过程。

本地环境:

wamp3.2集成开发环境:

Apache :2.4.41

Php       :7.3.12

MariaDB :10.4.10

1588589551910820

安装步骤:

1. 安装ImageMagick

下载地址:http://www.imagemagick.org/download/binaries/ ,可下载最新版本,如 ImageMagick-7.0.10-10-Q8-x64-dll.exe,.exe格式安装软件。默认会安装Path路径,若没有,可自行配置。

把ImageMagick程序安装目录下的modules\coders 文件夹下的IM_dll  复制到 wamp64\bin\apache\apache2.4.41\bin目录下。

2.下载拓展

php imagick扩展连接地址:

地址一:http://windows.php.net/downloads/pecl/releases/imagick/

地址二:https://pecl.php.net/package/imagick

要点: 注意对应php版本 ts还是nts x86还是x64

这里以phpinfo()为准所以我应该下载imagick 3.4.4版本 PHP7.3 Thread Safe (TS) x64 的拓展——php_imagick-3.4.4-7.3-ts-vc15-x64.zip.

3. 安装拓展

1.解压上述文件后,将php_imagick.dll复制到对应版本php扩展  ext 目录。

2.修改php.ini 加上extension=php_imagick.dll,这里以phpinfo 实际加载的Loaded Configuration File 参数为准。

1588593031958303

4. 执行pdf转png图片代码

1234567891011121314151617181920212223242526272829303132333435363738/*** PDF2PNG* @param $pdf  待处理的PDF文件* @param $path 待保存的图片路径* @param $page 待导出的页面 -1为全部 0为第一页 1为第二页* @return      保存好的图片路径和文件名*/ function pdf2png($pdf,$path,$page=-1){      if(!extension_loaded('imagick'))   {          return false;     }     if(!file_exists($pdf))   {          return false;     }     $im = new Imagick();     $im->setResolution(120,120);     $im->setCompressionQuality(100);   if($page==-1)         $im->readImage($pdf);   else      $im->readImage($pdf."[".$page."]");   foreach ($im as $Key => $Var)   {          $Var->setImageFormat('png');         $filename = $path."/". md5($Key.time()).'.png';       if($Var->writeImage($filename) == true)       {              $Return[] = $filename;         }     }     return $Return;  }  $path="D:/software/wamp64/www/imagick/images";//请确保当前目录下有这个文件夹,由于一直要用,所以就不加检测了$s=pdf2png("D:/software/wamp64/www/imagick/1.pdf",$path);var_dump($s);

注意:

报错1:

12Fatal error: Uncaught ImagickException: unable to open image '1.pdf': No such file or directory @ error/blob.c/OpenBlob/3496 in D:\software\wamp64\www\imagick\index.php on line 59

解决方案:pdf文件路径使用绝对路径

报错2:

1$im->readImage($pdf); Fatal error:  抛出ImagickException

解决方案:

安装ghostscript,https://www.ghostscript.com/download.html

上一篇:国外 Linux VPS 去程回程线路路由查询教程
下一篇:CentOS7怎么安装图形界面