php将pdf生成png缩略图的实例程序
需要安装imagick及其php扩展,一共有二个函数,都是从网上摘下来的,还没测试,这个方案应该可行,可以简单的仿照在线文档功能,有机会在项目中实践一下.
第一种,代码如下:
<?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.phprm.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>';
?>第二种,代码如下:
<?php
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.phprm.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);
?>文章地址:http://www.phprm.com/develop/fs4828.html
转载随意^^请带上本文地址!