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下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
php HandlerSocket的使用
May 02 PHP
php数组函数序列之array_search()- 按元素值返回键名
Nov 04 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
php使用ffmpeg获取视频信息并截图的实现方法
May 03 PHP
CI框架实现cookie登陆的方法详解
May 18 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 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实现的在线人员函数库
2008/04/09 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
javascript event 事件解析
2011/01/31 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
Python help()函数用法详解
2014/03/11 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
python3中zip()函数使用详解
2018/06/29 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
python下载微信公众号相关文章
2019/02/26 Python
Python发展简史 Python来历
2019/05/14 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
python3注册全局热键的实现
2020/03/22 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
大学生职业生涯规划范文
2014/01/08 职场文书
大学运动会入场词
2014/02/22 职场文书
可口可乐广告词
2014/03/20 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
企业宗旨标语
2014/06/10 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
小学见习报告
2015/06/23 职场文书
大学生十八大感想
2015/08/11 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript
Python实现简单得递归下降Parser
2022/05/02 Python