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 相关文章推荐
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
PHP中is_file()函数使用指南
May 08 PHP
php异常处理方法实例汇总
Jun 24 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 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垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
深入理解Javascript中的this关键字
2015/03/27 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python中类的属性和方法介绍
2018/11/27 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
Python单元测试与测试用例简析
2019/11/09 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
django 模版关闭转义方式
2020/05/14 Python
python怎么对数字进行过滤
2020/07/05 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
什么是索引指示器
2012/08/20 面试题
经管应届生求职信
2013/11/17 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
2014年实习期工作总结
2014/11/27 职场文书
黄山导游词
2015/01/31 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
丧事答谢词大全
2015/09/30 职场文书