PHP扩展之Imagick安装

最近工作项目中,有一个需求需要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图片代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
* 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:

1
2
Fatal 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

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:小林博客 www.vvso.cn小林博客 » PHP扩展之Imagick安装
分享到: 更多 (0)

评论 抢沙发

切换注册

登录

忘记密码 ?

切换登录

注册