PHP中使用imagick实现把PDF转成图片
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-08 22:50:53 浏览: 评论:0
这篇文章主要介绍了PHP中使用imagick实现把PDF转成图片,本文着重讲解了2个错误的处理,特别是GhostScript错误,需要的朋友可以参考下
PHP Manual里,对imagick的描述,真的是简洁,每个成员函数,点击打开就看到如下文本:
Warning
This function is currently not documented; only its argument list is available.
刚才解决了PHP加载问题后,对图片的处理相当方便,网上随便找了一段:
- <?php
- Header("Content-type: image/jpeg");
- /**
- * 缩小图片尺寸.
- *
- * @param $image 待处理的二进制图片
- * @param $width 处理后图片尺寸的宽度(px)
- * @param $height 处理后图片尺寸的高度(px)
- * @param $crop 是否裁剪图片
- *
- * @return 处理好的二进制图片
- */
- function resize($image, $width, $height, $crop)
- {
- $imagick = new Imagick($image);
- $w = $imagick->getImageWidth();
- $h = $imagick->getImageHeight();
- if ($w > $width || $h > $height)
- {
- if ($crop)
- {
- $imagick->cropThumbnailImage($width, $height);
- }
- else
- {
- $imagick->resizeImage($width, $height, Imagick::FILTER_LANCZOS, 1, true);
- }
- }
- $processed_image = $imagick->getImageBlob();
- return $processed_image;
- }
- $s=resize("123.jpg", 60, 40, 1);
- echo $s;
- ?>
但我要用这个扩展做的,是将PDF转成PNG,PDF哦!代码如下:
- <?php
- /**
- * 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="images";//请确保当前目录下有这个文件夹,由于一直要用,所以就不加检测了
- $s=pdf2png("test.pdf",$path);
- $scount=count($s);
- for($i=0;$i<$scount;$i++)
- {
- echo "<div align=center><font color=red>Page ".($i+1)."</font><br><a href=\"".$s[$i]."\" target=_blank><img border=3 height=120 width=90 src=\"".$s[$i]."\"></a></div><p>";
- }
- ?>
跟上面的差不多吧?可是总是不成功,readImage那边异常了,查看错误输出:
PHP Fatal error: Uncaught exception 'ImagickException' with message 'PostscriptDelegateFailed `test.pdf': No such file or directory'
百度谷歌了好久,最后灵机一动,不是说Postscript么?我找,我装。
这个Postscript,其实是GhostScript。
装好后,一跑,OK啦!
Tags: imagick PHP+PDF转成图片
相关文章
- ·php_imagick实现图片剪切、旋转、锐化、减色或增加特效(2013-11-14)
- ·php利用Imagick把pdf生成png缩略图(2014-08-18)
- ·使用Imagick绘图 文字换行 生成二维码例子(2015-12-24)
- ·PHP使用imagick读取PDF生成png缩略图的两种方法(2020-10-29)
- ·php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法(2021-05-03)
- ·PHP中使用Imagick实现各种图片效果实例(2021-05-08)
- ·PHP中使用Imagick读取pdf并生成png缩略图实例(2021-05-08)
- ·PHP中使用Imagick操作PSD文件实例(2021-05-08)
- ·php使用Imagick生成图片的方法(2021-06-15)
- ·PHP利用imagick生成组合缩略图(2021-07-10)
- ·PHP Imagick完美实现图片裁切、生成缩略图、添加水印(2021-07-10)
- ·PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例(2021-12-16)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)