裁剪图像的各个部分并将其合成一张图像

裁剪图像的各个部分并将其合成一张图像

假设我有以下图像,其中有三个大小相同的矩形,但字母不同

在此处输入图片描述

我想将它们组合起来,这样就只有一个矩形,并且所有三个矩形都层叠在一起

在此处输入图片描述

(忽略这些线条,它们只是为了视觉参考)

如何使用 imagemagick 的转换工具来做到这一点?

我已经阅读了文档中的示例,但我认为我需要做的是使用给定的尺寸和偏移量来-crop指定图像的一部分-geometry,然后使用-composite它将其分层在顶部。

但我不确定该命令是什么样子的。

答案1

这是我的解决方案。结果发现它非常简单。我的图像是 800x600,由三个 800x200 的矩形组成,目标是提取每个矩形并将其层叠在一起,最终形成一个 800x200 的图像。

首先,这是我用来创建 800x200 的空白画布的命令,我将使用该命令在其上分层放置图像。请注意,这^只是 Windows 批处理文件的换行符。我认为对于 Unix Shell 脚本来说,它是反斜杠。

convert -size 800x200 xc:none ^
out.png

其次,我更新命令以添加分层,它只是获取整个图像并将其分层到画布上

convert -size 800x200 xc:none ^
  image.png -composite ^
out.png

作曲

第三,我希望能够裁剪图像的特定部分并将其叠加到画布上。我使用裁剪命令来实现这一点,但也使用括号来执行嵌套操作。由于第二个矩形的偏移量为 (0,200),所以我裁剪了它

convert -size 800x200 xc:none ^
  ( image.png -crop 800x200+0+200 ) -composite ^
out.png

在此处输入图片描述

现在我能够从一张图像裁剪并合成到另一张图像上,现在我只需要对所有三个矩形执行裁剪和合成,只需复制粘贴相同的线条并更新裁剪几何即可

convert -size 800x200 xc:none ^
  ( image.png -crop 800x200+0+0 ) -composite ^
  ( image.png -crop 800x200+0+200 ) -composite ^
  ( image.png -crop 800x200+0+400 ) -composite ^
out.png

在此处输入图片描述

相关内容