PHP使用imagick读取PDF生成png缩略图的解决办法
内容摘要
这篇文章主要为大家详细介绍了PHP使用imagick读取PDF生成png缩略图的简单示例,具有一定的参考价值,可以用来参考一下。
文章正文
这篇文章主要为大家详细介绍了PHP使用imagick读取PDF生成png缩略图的简单示例,具有一定的参考价值,可以用来参考一下。
一、ImageMagick是什么ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。二、php_imagick什么一个可以供PHP调用ImageMagick功能的PHP扩展。使用这个扩展可以使PHP具备和ImageMagick相同的功能。三、PDF生成png缩略图的两种方法第一种:代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <code> /** * 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>' ;</code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <code> 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 ; } } return $Return ; }</code> |
注:关于PHP使用imagick读取PDF生成png缩略图的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释