Imagick::getNumberImages

(PECL imagick 2, PECL imagick 3)

Imagick::getNumberImagesReturns the number of images in the object

说明

public Imagick::getNumberImages ( ) : int

Returns the number of images associated with Imagick object.

参数

此函数没有参数。

返回值

Returns the number of images associated with Imagick object.

错误/异常

错误时抛出 ImagickException。

User Contributed Notes

benkuhl at gmail dot com 24-Jan-2013 07:26
For PDFs this function indicates the number of pages on the PDF, NOT images that might be embedded within the PDF.

<?php

$document
= new Imagick('2_pager.pdf');

var_dump($document->getNumberImages()); //returns 2

$document = new Imagick('1_pager.pdf');

var_dump($document->getNumberImages()); //returns 1

?>

From my research it is not possible to obtain the images embedded within a PDF by using the PHP Imagick library.
gzabriskie at yahoo dot com 07-Apr-2009 05:21
<?php
/* Create the object */
$image = new Imagick('YourImageLocation.tif');
$count = $image->getNumberImages();

echo
"<h3 style=\"font: bold 12pt Arial\">Total Number of Images Extracted ".
    
"from the TIF : ".$image->getNumberImages()."</h3>";

for (
$x = 1;$x <= $image->getNumberImages(); $x++) {
 
$image->previousImage();
 
$image->thumbnailImage( 400, null );
 
$image->writeImage('img'.$count.'.png');
 
$count--;
}
?>

<html>
  <head>
    <title>Extracting Images Form TIFF</title>
  </head>
  <body>
    <table cellspacing="10" style="background: #ddd"><tr>
      <?php
     
for ($x = 1;$x <= $image->getNumberImages(); $x++) {
        echo
"<td><img src=\"img$x.png\"<br /><p style=\"font: bold 12pt Arial;".
            
"text-align: center\">image $x (png)</p></td>";
      }
     
?>
    </tr></table>
  </body>
</html>