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高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30005