PHP使用imagick读取PDF生成png缩略图的两种方法


Posted in PHP onMarch 20, 2014

一、ImageMagick是什么
ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。
二、php_imagick什么
一个可以供PHP调用ImageMagick功能的PHP扩展。使用这个扩展可以使PHP具备和ImageMagick相同的功能。
三、PDF生成png缩略图的两种方法
第一种:

/**
* PDF2PNG   
* @param $pdf  待处理的PDF文件
* @param $path 待保存的图片路径
* @param $page 待导出的页面 -1为全部 0为第一页 1为第二页
* @return      保存好的图片路径和文件名
*/
 function pdf2png($pdf,$path,$page=0)
{  
   if(!is_dir($path))
   {
       mkdir($path,true);
   }
   if(!extension_loaded('imagick'))
   {  
     echo '没有找到imagick!' ;
     return false;
   }  
   if(!file_exists($pdf))
   {  
      echo '没有找到pdf' ;
       return false;  
   }  
   $im = new Imagick();  
   $im->setResolution(120,120);   //设置图像分辨率
   $im->setCompressionQuality(80); //压缩比
   $im->readImage($pdf."[".$page."]"); //设置读取pdf的第一页
   //$im->thumbnailImage(200, 100, true); // 改变图像的大小
   $im->scaleImage(200,100,true); //缩放大小图像
   $filename = $path."/". time().'.png';
   if($im->writeImage($filename) == true)
   {  
      $Return  = $filename;  
   }  
   return $Return;  
}  
$s = pdf2png('file/1371273225-ceshi_ppt.pdf','images'); 
echo '<div align="center"><img src="'.$s.'"></div>';

第二种:
function pdf2png($PDF,$Path){
   if(!extension_loaded('imagick')){
     return false;
   }
   if(!file_exists($PDF)){
     return false;
   }
   $IM = new imagick();
   $IM->setResolution(120,120);
   $IM->setCompressionQuality(100);
   $IM->readImage($PDF);
   foreach ($IM as $Key => $Var){
     $Var->setImageFormat('png');
     $Filename = $Path.'/'.md5($Key.time()).'.png';
     if($Var->writeImage($Filename) == true){
       $Return[] = $Filename;
     }
   }
   return $Return;
}
PHP 相关文章推荐
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
php无限遍历目录示例
Feb 21 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php按单词截取字符串的方法
Apr 07 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 #PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 #PHP
php实现保存submit内容之后禁止刷新
Mar 19 #PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 #PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 #PHP
PHP中获取时间的下一周下个月的方法
Mar 18 #PHP
php读取目录所有文件信息dir示例
Mar 18 #PHP
You might like
php设置允许大文件上传示例代码
2014/03/10 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
jQuery实现简单三级联动效果
2020/09/05 jQuery
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
python实现飞机大战微信小游戏
2020/03/21 Python
python样条插值的实现代码
2018/12/17 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
python是否适合网页编程详解
2019/10/04 Python
python中dict()的高级用法实现
2019/11/13 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
检查接待方案
2014/02/27 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
解除劳动合同协议书
2014/04/14 职场文书
销售顾问工作计划书
2014/08/15 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL