用远程网址想象

时间:2012-09-20 18:22:34

标签: php imagick

这里想象力适用于存储在服务器中的图像..但我不知道如果我用$ paths数组替换远程网址

$background = new Imagick('back.jpg');
    $paths  = array(
        "img/1.jpg",
        "img/2.jpg",
        "img/3.jpg",
        "img/4.jpg",
    );

    $images = new Imagick($paths);
    foreach($images as $image){
      $image->thumbnailImage($width, NULL);
      $background->compositeImage($image, Imagick::COMPOSITE_OVER, $x ,$y );
    }

2 个答案:

答案 0 :(得分:5)

尝试使用file_get_contentsfile_put_contents暂时将图像存储在本地服务器上:

<?php
$remote_image = file_get_contents("http://foo.com/remote_image.jpg");
file_put_contents("/tmp/remote_image.jpg", $remote_image);
$image = new Imagick("/tmp/remote_image.jpg");
?>

答案 1 :(得分:0)

我知道它已经很旧了,但为了记录起见,这是一种无需保存到磁盘的更好方法:

$image_url = 'http://example.com/input.jpg';
$imageBlob = file_get_contents($image_url);
 
$imagick = new Imagick();
$imagick->readImageBlob($imageBlob); 

header("Content-Type: image/jpeg");
echo $imagick->getImageBlob(); //for animated gifs - getImagesBlob()