欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 网站制作教程 >

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

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

  $Return[] = $Filename;

  }

  }

  return $Return;

  }