当前位置:首页 > PHP教程 > php图像处理 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2020-10-29 11:44:03 浏览: 评论:0 

这篇文章主要介绍了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缩略图的两种方法

第一种:

  1. /** 
  2. * PDF2PNG    
  3. * @param $pdf  待处理的PDF文件 
  4. * @param $path 待保存的图片路径 
  5. * @param $page 待导出的页面 -1为全部 0为第一页 1为第二页 
  6. * @return      保存好的图片路径和文件名 
  7. */ 
  8.  function pdf2png($pdf,$path,$page=0) 
  9. {   
  10.    if(!is_dir($path)) 
  11.    { 
  12.        mkdir($path,true); 
  13.    } 
  14.    if(!extension_loaded('imagick')) 
  15.    {   
  16.      echo '没有找到imagick!' ; 
  17.      return false; 
  18.    }   
  19.    if(!file_exists($pdf)) 
  20.    {   
  21.       echo '没有找到pdf' ; 
  22.        return false;   
  23.    }   
  24.    $im = new Imagick();   
  25.    $im->setResolution(120,120);   //设置图像分辨率 
  26.    $im->setCompressionQuality(80); //压缩比 
  27.    $im->readImage($pdf."[".$page."]"); //设置读取pdf的第一页 
  28.    //$im->thumbnailImage(200, 100, true); // 改变图像的大小 
  29.    $im->scaleImage(200,100,true); //缩放大小图像 
  30.    $filename = $path."/". time().'.png'
  31.    if($im->writeImage($filename) == true) 
  32.    {   
  33.       $Return  = $filename;   
  34.    }   
  35.    return $Return;   
  36. }   
  37. $s = pdf2png('file/1371273225-ceshi_ppt.pdf','images');  
  38. echo '<div align="center"><img src="'.$s.'"></div>'

第二种:

  1. function pdf2png($PDF,$Path){ 
  2.    if(!extension_loaded('imagick')){ 
  3.      return false; 
  4.    } 
  5.    if(!file_exists($PDF)){ 
  6.      return false; 
  7.    } 
  8.    $IM = new imagick(); 
  9.    $IM->setResolution(120,120); 
  10.    $IM->setCompressionQuality(100); 
  11.    $IM->readImage($PDF); 
  12.    foreach ($IM as $Key => $Var){ 
  13.      $Var->setImageFormat('png'); 
  14.      $Filename = $Path.'/'.md5($Key.time()).'.png'
  15.      if($Var->writeImage($Filename) == true){ 
  16.        $Return[] = $Filename
  17.      } 
  18.    } 
  19.    return $Return

Tags: imagick

分享到: