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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
PHP迅雷、快车、旋风下载专用链转换代码
Jun 15 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
解决php extension 加载顺序问题
Aug 16 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 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文件上传类
2017/07/04 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
jquery下checked取值问题的解决方法
2012/08/09 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python如何判断数独是否合法
2016/09/08 Python
python散点图实例之随机漫步
2018/08/27 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
2016党校学习心得体会范文
2016/01/07 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
delete in子查询不走索引问题分析
2022/07/07 MySQL