0

这里 imagick 适用于存储在服务器中的图像.. 但是如果我用 $paths 数组中的远程 url 替换我不知道如何工作

$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 );
    }
4

2 回答 2

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");
?>
于 2012-09-20T19:24:23.330 回答
2

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

$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()
于 2020-12-11T08:34:45.047 回答