gpt4 book ai didi

php - Imagick:如何使用 appendImages 附加图像网格

转载 作者:行者123 更新时间:2023-12-01 23:32:21 27 4
gpt4 key购买 nike

我没有在 php 中使用 exec 命令,所以我无权运行手册中的以下内容:http://www.imagemagick.org/Usage/layers/它指出,“您可以进一步制作一整套图像,并按行或按列构建它们。”

convert \( font_1.gif font_2.gif font_3.gif +append \) \
\( font_4.gif font_5.gif font_6.gif +append \) \
\( font_7.gif font_8.gif font_9.gif +append \) \
\( -size 32x32 xc:none font_0.gif +append \) \
-background none -append append_array.gif

使用 http://php.net/manual/en/imagick.appendimages.php imagick 中的 appendImages 函数如何模拟看似更强大的 append CLI 命令以按行和列附加图像?还是仅仅使用 imagick 中的 appendImages 函数是不可能的?

$rack = [
'row1' => [
'image1.jpg',
'image2.jpg'
],
'row2' => [
'image3.jpg',
'image4.jpg'
]
];

我的问题是,你如何使用appendImages在 imagick 或 imagick 中的其他函数中实现与 CLI convert -append 命令类似的结果?

我知道我可以使用其他函数,如 compositeImage 并使用 x,y 来控制定位,但简单地追加行对于我的用例来说会简单得多。

最佳答案

您可以仅使用 appendImages() 执行一个两阶段过程(类似于该命令似乎执行的操作):

  1. 使用 appendImages() 指定 stack=false
  2. 遍历行,从左到右水平附加每行的内容
  3. 使用 appendImages() 指定 stack=true
  4. 从上到下垂直附加所有生成的 Imagick 行对象

像这样:

$rack = [
'row1' => [
'image1.jpg',
'image2.jpg'
],
'row2' => [
'image3.jpg',
'image4.jpg'
]
];

$fullimage = new Imagick();

foreach ($rack as $k => $v) {
$rowimg = new Imagick();
foreach ($v as $imagelocation) {
$rowimg->readImage($imagelocation);
}
$rowimg->resetIterator();
$combinedrow = $rowimg->appendImages(false);
$fullimage->addImage($combinedrow);
}

$fullimage->resetIterator();
$finalimage = $fullimage->appendImages(true); // <-- Done.

关于php - Imagick:如何使用 appendImages 附加图像网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200042/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com