Imagemagick Thumbnailing PDF有多个页面

时间:2014-08-29 12:14:34

标签: php pdf imagemagick

我目前正在使用Imagemagick和我工作的缩略图,但问题是当它是一个多页PDF时,它只缩略显示最后一页。

我希望它只是在第一页上发布。任何人都可以放弃任何光明。

    if(in_array($ext,array('pdf'))){

                $pdf = './uploads/'.$new_file_name;

                $filename=str_replace($ext,'jpg',$new_file_name);

                $img = new imagick($pdf);

                for ($x = 1;$x <= $img->getNumberImages(); $x++) {      
                    $save_to = './uploads/'.$x.'-'.$filename;
                    $img->setImageFormat('jpg');
                    $img->resizeImage(149,211,Imagick::FILTER_LANCZOS,1);
                    $img->displayImages('img');
                    $img->writeImage($save_to);
                }

1 个答案:

答案 0 :(得分:0)

for循环中,您需要在每次迭代时设置图像索引。

for ($x = 1;$x <= $img->getNumberImages(); $x++) {
  $img->setIteratorIndex($x - 1); // nth - 1 assuming we're starting with `$x = 1'      
  $save_to = './uploads/'.$x.'-'.$filename;
  $img->setImageFormat('jpg');
  $img->resizeImage(149,211,Imagick::FILTER_LANCZOS,1);
  $img->displayImages('img');
  $img->writeImage($save_to);
}

<强>更新

while循环我使用Imagick::hasNextImageImagick::nextImage提供了更简单的解决方案。

$img = new imagick($pdf);
while($img->hasNextImage()) {
   // ... do work
   $img->nextImage();
}
相关问题