如何追加已使用appendImage创建的图像?

时间:2011-03-12 05:39:27

标签: php imagick

php网站列出了以下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;
?>

如何使用从URL生成的图像,例如

$image = new Imagick("sampleImage.jpg");

这样我就可以附加加载的图片而不是使用newImage()

2 个答案:

答案 0 :(得分:5)

使用Imagick::addImage将各种Imagicks“组合”成一个,然后使用appendImages,例如(从here添加):

<?php
$filelist = array("fileitem1.png","fileitem2.png","fileitem3.png");

$all = new Imagick();

foreach($filelist as $file){
    $im = new Imagick($file);       
    $all->addImage($im);
}
/* Append the images into one */
$all->resetIterator();
$combined = $all->appendImages(true);

/* Output the image */
$combined->setImageFormat("png");
header("Content-Type: image/png");
echo $combined;
?>

答案 1 :(得分:0)

您可以使用fopen()返回的句柄来使用来自url的图像。

示例:

<?php
/* Read images from URL */
$handle1 = fopen('http://yoursite.com/your-image1.jpg', 'rb');
$handle2 = fopen('http://yoursite.com/your-image2.jpg', 'rb');

/* Create new imagick object */
$img = new Imagick();

/* Add to Imagick object */
$img->readImageFile($handle1);
$img->readImageFile($handle2);

/* Append the images into one */
$img->resetIterator();
$combined = $img->appendImages(true);

/* path to save you image */
$path = "/images/combined-image.jpg";

/* Output the image */
$combined->setImageFormat("jpg");
$combined->writeimage( $path );

/* destroy imagick objects */
$img->destroy();
$combined->destroy();

?>