• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Imagick::appendImages()

    (PECL imagick 2.0.0)

    Append a set of images

    说明

    Imagick::appendImages(bool $stack): Imagick

    Append a set of images into one larger image.

    参数

    $stack

    Whether to stack the images vertically. By default(or if FALSE is specified)images are stacked left-to-right. If$stackis TRUE, images are stacked top-to-bottom.

    返回值

    Returns Imagick instance on success.

    错误/异常

    错误时抛出 ImagickException。

    范例

    Example #1 Imagick::appendImages() example

    <?php
    /* Create new imagick object */
    $im = new Imagick();
    /* create red, green and blue images */
    $im->newImage(100, 50, "red");
    $im->newImage(100, 50, "green");
    $im->newImage(100, 50, "blue");
    /* Append the images into one */
    $im->resetIterator();
    $combined = $im->appendImages(true);
    /* Output the image */
    $combined->setImageFormat("png");
    header("Content-Type: image/png");
    echo $combined;
    ?>
    

    以上例程的输出类似于:

    # How to combine a multi-page pdf file into a single long image:
    <?php
    $im1 = new Imagick();  
    $im1->readImage('multi-page-pdf.pdf');
    $im1->resetIterator();
    # Combine multiple images into one, stacked vertically. 
    $ima = $im1->appendImages(true);
    $ima->setImageFormat("png");
    header("Content-Type: image/png");
    echo $ima;
    ?>
    
    # change $ima to $ima->getimagesblob()
    <?php
    $im1 = new Imagick(); 
    $im1->readImage('multi-page-pdf.pdf');
    $im1->resetIterator();
    # Combine multiple images into one, stacked vertically.
    $ima = $im1->appendImages(true);
    $ima->setImageFormat("png");
    header("Content-Type: image/png");
    echo $ima->getimagesblob();
    ?>
    
    Sometimes when running this code on a long running apache24 instance on a server with minimal memory the final "echo $ima;" returns an empty string.
    Doing an "apache graceful" seems to clear this up. There appears to be no other way to correct OR DETECT this problem. Suckky.