加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网 (https://www.ruian888.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php把pdf生成png缩略图的实例程序

发布时间:2022-02-11 01:41:26 所属栏目:编程 来源:互联网
导读:需要安装imagick及其php扩展,一共有二个函数,都是从网上摘下来的,还没测试,这个方案应该可行,可以简单的仿照在线文档功能,有机会在项目中实践一下. 第一种,代码如下: /** * PDF2PNG * @param $pdf 待处理的PDF文件 * @param $path 待保存的图片路径 * @par
  需要安装imagick及其php扩展,一共有二个函数,都是从网上摘下来的,还没测试,这个方案应该可行,可以简单的仿照在线文档功能,有机会在项目中实践一下.
 
  第一种,代码如下:
 
  /**
  * 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;   
     }   //www.Cuoxin.com
     $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;
         } //www.Cuoxin.com
     }
     return $Return;
  }  
  创建一个jpg缩略图并显示出来,代码如下:
 
  <?php
  header('Content-type: image/jpeg');
  $image = new Imagick('image.jpg');
  // If 0 is provided as a width or height parameter,// aspect ratio is maintained
  $image->thumbnailImage(100, 0);
  echo $image;
  ?>
  缩略GIF动画图片,代码如下:
 
  <?php
  /* Create a new imagick object and read in GIF */
  $im = new Imagick("example.gif");
  /* Resize all frames */
  foreach ($im as $frame) {
  /* 50x50 frames */
  $frame->thumbnailImage(50, 50);
  /* Set the virtual canvas to correct size */
  $frame->setImagePage(50, 50, 0, 0);
  }/* Notice writeImages instead of writeImage */
  $im->writeImages("example_small.gif", true);
  ?> 

(编辑:天瑞地安资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!