php利用Imagick把pdf生成png缩略图

作者: adm 分类: php 发布时间: 2023-08-31

缩略图如果是图片我们直接使用php gD库就可实现了,本文章要介绍的是Imagick把pdf生成png缩略图方法,这里我们要利用一个插件了,下面我来给大家演示一个实例.

php_imagick什么

一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能.

ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF,JPEG,GIF,PNG,PDF以及PhotoCD等格式,利用ImageMagick,你可以根据web应用程序的需要动态生成图片,还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存.

php_imagick怎么用

.创建一个缩略图并显示出来,代码如下:

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); 
//开源代码php7.com.cn 
echo $image; 

缩略GIF动画图片,代码如下:

 
 
/* 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); 
 

好了扯远了,我们来进入正题吧.

pdf生成png首页缩略图,服务器需要支持Imagick,代码如下:

/** 
* 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 "
";

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!