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

发表于2019-04-24 06:08|

次阅读|

来源网络整理|

作者session

摘要:PHP利用imagick读取PDF生成png缩略图的两种方法

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

这篇文章次要引见了PHP利用imagick读取PDF第一页生成png缩略图的两种方法,利用了PHP扩充php_imagick,需求的冤家可能参考下

一、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 '

';

第二种:

代码如下: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.'http://www.yhzhan.com/'.md5($Key.time()).'.png';

if($Var->writeImage($Filename) == true){

$Return[] = $Filename;

}

}

return $Return;

}

php imagick 取得psd缩略图,PHP利用imagick读取PDF生成png缩略图的两种方法相关推荐

  1. 利用多线程爬虫搭建代理ip池的两种方法(含源码)

    搭建爬虫代理ip池的两种方法(含源码) 前言 一.ip池是什么? 二.爬取原理 三.使用步骤 方法一 爬取网站https://www.kuaidaili.com/ 验证 存取到mysql 方法二 爬取 ...

  2. 利用ENVI和ARCGIS做相关性分析的两种方法

    一.ENVI里如何对两个波段进行相关性分析 1.首先获取要统计的两个波段的信息,这里用的ndvi和地表反照率(aldeo),两个波段值经过归一化后进行计算 2.首先利用layer stacking工具 ...

  3. 利用颜色和形态学两种方法进行车牌区域提取的OpenCV代码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 2016-7-28日:用MSER算法也实现了车牌 ...

  4. DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测

    DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...

  5. win10可用空间变成未分配_教你两种方法有效利用Win10未分配的空间 - 易我科技...

    Haley 于 2020/08/24更新 磁盘分区管理 摘要 文中介绍了两种方法充分利用Windows10未分配空间,分别为1)格式化Win10未分配空间来创建新的分区,2)在分区上添加未分配空间. ...

  6. php随机缩略图,实现随机缩略图的简单思路和phpcms随机缩略图两种方法

    一种实现随机缩略图的简单思路:设置一个随机缩略图图片池(比如thumb文件夹),里面放若干张从"1.jpg"开始顺序命名的预置图片,判断无缩略图时,使用php的mt_rand(1, ...

  7. js获取classname值_利用js获取元素class值的两种方法

    我们有时为了达到某种效果,需要以元素的class值为条件做判断. 我们如何利用JavaScript获取元素class的值?我们先看下面代码: x=document.getElementsByTagNa ...

  8. 用matlab计算稳态误差,利用Matlab求稳态误差的两种方法.

    利用Matlab求稳态误差的两种方法 摘要:稳态误差是系统控制精度或抗扰动能力的一种度量,它是稳态性能的一个重要指标.本文介绍利用Matlab的控制系统工具箱和Simulink工具箱求取系统误差稳态的 ...

  9. 创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 编程利用Rectangle输出一个矩形的周长和面积

    创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 编程利用Rectangle输出一个矩形的周长和面积 publi ...

最新文章

  1. Centos普通用户提权至ROOT
  2. element-UI中手动调用table排序
  3. Java黑皮书课后题第10章:*10.17(平方数)找出大于Long.MAX_VALUE的前10个平方数。平方数是指形式为n^2的数
  4. Windows 7 Beta(32位\64位)官方镜像文件下载
  5. JavaScriptSerializer序列化与反序列化--备忘
  6. centos有趣软件包_这5个软件包使学习R变得有趣
  7. mysql rpm 安装6_linux6.5 RPM方式安装 mysql5.6
  8. spring电子书_不懂Spring就彻底放Java吧
  9. 学了这几招,社交时人人都对你刮目相看(转载)
  10. 页面显示拒绝访问请求
  11. python爬取小视频-40行代码教你利用Python网络爬虫批量抓取小视频
  12. 蜗牛星际B双 安装黑群晖7.1(U盘引导)
  13. 商务网站建设与维护【15】
  14. php cdr,cdr文件用什么打开
  15. 奔骝定位摄影作品之LAS100
  16. 爬取虎牙TV全站主播信息
  17. 羡慕华为人年薪110万?先看看华为员工的16项标准!
  18. 学UI设计,用对这5款设计软件是关键
  19. Marathon+Mesos+Docker实战
  20. 【C语言】汉诺塔问题

热门文章

  1. 通过注册表检测是否安装了VC++ 2008 SP1 redistributable。
  2. 记录一次idea崩溃问题
  3. Android studio和码云步骤,android地图开发框架
  4. RECS高管教练课程是什么?
  5. 英文科技论文写作常用句型
  6. FFmpeg常用推流命令
  7. IE1011安装失败出现9C59代码之解决方案,
  8. 054_er_xiang_yi_tu_sou_tu
  9. 单位序列响应和阶跃响应的z域分析 matlab,信号与系统 [薛莲,周茉,刘少敏 主编] 2015年版...
  10. 如何成为Java架构师?学习路线是怎样的?大佬总结成长之路跟着往上走,建议你提早开始准备!