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的FTP学习(二)[转自奥索]
Oct 09 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
php正则表达式使用的详细介绍
Apr 27 PHP
php中数字0和空值的区别分析
Jun 05 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
php语法检查的方法总结
Jan 21 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
php字符串截取函数用法分析
2014/11/25 PHP
php简单统计在线人数的方法
2016/05/10 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
列表内容的选择
2006/06/30 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
python中的print()输出
2019/04/12 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
django配置app中的静态文件步骤
2020/03/27 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python爬取某平台短视频的方法
2021/02/08 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
学期研究性学习个人的自我评价
2014/01/09 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
影视广告专业求职信
2014/09/02 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
团员个人年度总结
2015/02/26 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL