加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用PHP可以生成PNG图像的PDF缩略图

发布时间:2023-07-29 10:05:58 所属栏目:PHP教程 来源:
导读:需要安装imagick及其php扩展,一共有二个函数,都是从网上摘下来的,还没测试,这个方案应该可行,可以简单的仿照在线文档功能,有机会在项目中实践一下.

第一种,代码如下:

/**
* PDF2PNG
* @param $pdf 待处
需要安装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); 
?> 
 

(编辑:汽车网)

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

    推荐文章