在 PHP 中使用 imagemagick 蒙太奇

Using imagemagick montage with PHP

我正在尝试使用 imagemagick 制作蒙太奇。我让它部分工作。我想制作 2 列 2 行的蒙太奇。在白色背景上,图像之间有 5px 的填充。当我使用下面的代码时,生成的图像是一个图像的两倍高和两倍宽,尽管四张图像中只有第一张以正确的大小和斑点出现,其余三个斑点为白色。所有图像的尺寸和文件类型都相同。

<?php
header('Content-type: image/jpeg');
$loc1 = 'http://localhost:8888/gallery_edited/0116.jpg';
$loc2 = 'http://localhost:8888/gallery_edited/0115.jpg';
$loc3 = 'http://localhost:8888/gallery_edited/0114.jpg';
$loc4 = 'http://localhost:8888/gallery_edited/0113.jpg';
$image = new Imagick("$loc1 $loc2 $loc3 $loc4");
$image -> setFormat("jpg");
$image = $image -> montageImage(new ImagickDraw, '2x2', '600x400', 0, '0');
echo $image;

使用 Imagick::addImage 使用 Imagick 对象的新实例构建图像堆栈。

<?php

$sources = array(
    'red.png',
    'green.png',
    'blue.png',
    'orange.png'
);

$stack = new Imagick();
foreach( $sources as $source ) {
    $stack->addImage(new Imagick($source));
}

$montage = $stack->montageImage(new ImagickDraw(), '2x2', '500x300', 0, '0');
$montage->writeImage('out.png');