好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php将pdf生成png缩略图的实例程序 - php高级应用

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

需要安装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;       }    //HdhCmsTestphpfensi测试数据       $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 ;         }  //HdhCmsTestphpfensi测试数据      }      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);  ?> 

查看更多关于php将pdf生成png缩略图的实例程序 - php高级应用的详细内容...

  阅读:49次