PHP利用imagick读取PDF生成png缩略图的两种方法
摘要:PHP利用imagick读取PDF生成png缩略图的两种方法
PHP利用imagick读取PDF生成png缩略图的两种方法
这篇文章次要引见了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缩略图的两种方法
第一种:
代码如下:/**
* 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 '<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.'http://www.yhzhan.com/'.md5($Key.time()).'.png';
if($Var->writeImage($Filename) == true){
$Return[] = $Filename;
}
}
return $Return;
}
一、ImageMagick是什么
ImageMagick是一套性能强大、稳固而且免费的工具集和开发包,可能用来读、写和解决超过185种根本格式的图片文件,包括盛行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。应用ImageMagick,你可能依据web运用程序的需求动态生成图片, 还可能对一个(或一组)图片停止扭转大孝旋转、锐化、增色或添加特效等操作,并将操作的后果以相反格式或其它格式保存。
二、php_imagick什么
一个可能供PHP调用ImageMagick性能的PHP扩充。利用这个扩充可能使PHP具有和ImageMagick相反的性能。
三、PDF生成png缩略图的两种方法
第一种:
代码如下:/**
* 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 '<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.'http://www.yhzhan.com/'.md5($Key.time()).'.png';
if($Var->writeImage($Filename) == true){
$Return[] = $Filename;
}
}
return $Return;
}