【发布时间】:2015-11-04 18:49:28
【问题描述】:
我对使用 imagemagick 很陌生,所以我可能完全搞错了。
我想加载 10 张图片,并将它们合成到一个网格中,两行 5 张图片如下:
所有图像的尺寸都相同,因此没有问题,但我什至无法加载多个图像。
我尝试了以下方法:
$src1 = new \Imagick('../'.$fileSelection[0][3]);
$src1->writeImage("./output.png");
$src2 = new \Imagick('../'.$fileSelection[1][3]);
$src2->writeImage("./output2.png");
header('Content-Type: image/jpeg');
echo $src1;
echo $src2;
这似乎只输出页面上的第一张图片,没有其他内容。
我哪里错了?如何加载所有十张图像,以及如何将它们合成在一起?
我找到了以下代码:
$src1 = new \Imagick("./src1.png");
$src2 = new \Imagick("./src2.png");
$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
$src1->writeImage("./output.png");
但我在页面/空白处什么都没有。
任何建议表示赞赏。
【问题讨论】:
-
您需要 i) 创建您想要的最终输出尺寸的“画布”图像。 ii) 加载每个图像,并合成到画布图像中 iii) 将该画布图像发送到浏览器。
标签: image imagemagick imagick