php利用Imagick把pdf生成png缩略图

缩略图如果是图片我们直接使用php gD库就可实现了,本文章要介绍的是Imagick把pdf生成png缩略图方法,这里我们要利用一个插件了,下面我来给大家演示一个实例.

php_imagick什么

一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能.

ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF,JPEG,GIF,PNG,PDF以及PhotoCD等格式,利用ImageMagick,你可以根据web应用程序的需要动态生成图片,还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存.

php_imagick怎么用

.创建一个缩略图并显示出来,代码如下:

  1. <?php
  2. header('Content-type: image/jpeg');
  3. $image = new Imagick('image.jpg');
  4. // If 0 is provided as a width or height parameter,// aspect ratio is maintained
  5. $image->thumbnailImage(100, 0);
  6. //开源代码phpfensi.com
  7. echo $image;
  8. ?>

缩略GIF动画图片,代码如下:

  1. <?php
  2. /* Create a new imagick object and read in GIF */
  3. $im = new Imagick("example.gif");
  4. /* Resize all frames */
  5. foreach ($im as $frame) {
  6. /* 50x50 frames */
  7. $frame->thumbnailImage(50, 50);
  8. /* Set the virtual canvas to correct size */
  9. $frame->setImagePage(50, 50, 0, 0);
  10. }/* Notice writeImages instead of writeImage */
  11. $im->writeImages("example_small.gif", true);
  12. ?>

好了扯远了,我们来进入正题吧.

pdf生成png首页缩略图,服务器需要支持Imagick,代码如下:

  1. /**
  2. * PDF2PNG
  3. * @param $pdf 待处理的PDF文件
  4. * @param $path 待保存的图片路径
  5. * @param $page 待导出的页面 -1为全部 0为第一页 1为第二页
  6. * @return 保存好的图片路径和文件名
  7. */
  8. function pdf2png($pdf,$path,$page=0)
  9. {
  10. if(!is_dir($path))
  11. {
  12. mkdir($path,true);
  13. }
  14. if(!extension_loaded('imagick'))
  15. {
  16. echo '没有找到imagick!' ;
  17. return false;
  18. }
  19. if(!file_exists($pdf))
  20. {
  21. echo '没有找到pdf' ;
  22. return false;
  23. }
  24. $im = new Imagick();
  25. $im->setResolution(120,120); //设置图像分辨率
  26. $im->setCompressionQuality(80); //压缩比
  27. $im->readImage($pdf."[".$page."]"); //设置读取pdf的第一页
  28. //$im->thumbnailImage(200, 100, true); // 改变图像的大小
  29. $im->scaleImage(200,100,true); //缩放大小图像
  30. $filename = $path."/". time().'.png';
  31. if($im->writeImage($filename) == true)
  32. {
  33. $Return = $filename;
  34. }
  35. return $Return;
  36. }
  37. $s=pdf2png('file/1371273225-ceshi_ppt.pdf','images');
  38. echo "<div align=center><img src="".$s.""></div>";