将图像的多个区域组合成一个目标

Compose multiple regions of an image into a target

我正在尝试使用 ImageMagick 将呈现的 PDF 的不同部分组合到一个目标中。例如,我想让 ImageMagick 以 300dpi 渲染 PDF,然后创建一个 300x400 像素的输出图像,然后从 PDF 中取出 10x20+30+40 区域并将其放置在目标(300x400 像素图像)的 12,34 处。然后在不同坐标处取另一个(以及第三个和第四个)大小不同的块,并将它们放在不同的地方。

我似乎无法弄清楚如何一次完成此操作,并且在多次运行中执行此操作总是会重新呈现 PDF 并花费很长时间。这可能吗?

这里有一个关于如何处理这个问题的想法。它使用 Fred 在评论中建议的 MPR"Memory Program Register"。它基本上是一个命名的内存块,我在开始时将其写入并在以后需要时回忆起来。

这是来自 Prokudin-Gorskii collection:

的相当精彩的开始图片

代码调整图像大小并在 MPR 中保存一个副本。然后,获取 MPR 的副本,裁剪出一个头部,调整其大小并将调整后的结果合成到不同位置的调整后的原件上,然后对另一个头部重复该过程。

magick Prokudin.png -resize 300x400\! -write MPR:orig \
    \( MPR:orig -crop 50x50+180+84 -resize 140x140  \) -geometry +10+240 -compose src-over -composite \
    \( MPR:orig -crop 40x40+154+184                 \) -geometry +40+100 -compose src-over -composite \
    result.png

如果您无法理解它,请尝试 运行 省略第二行或第三行,这样它只显示一个头 ;-)

希望它涵盖了您问题的所有方面,您可以将其调整为您的 PDF。