【问题标题】:How to merge mutiple part of image into one如何将图像的多个部分合并为一个
【发布时间】:2018-04-02 02:54:05
【问题描述】:

我有一个图像的 100 个部分,我想将它们合并为一个。如何使用 Imagemagick 的转换或蒙太奇等工具从命令行执行此操作。

输入是图像的一小部分,如下所示:

输出是:

【问题讨论】:

    标签: imagemagick-convert


    【解决方案1】:

    在 Imagemagick 中,您可以使用蒙太奇工具来合并一个 (MxN) 切片数组。

    montage image01 image02 ... imageXX -tile MxN -geometry +0+0 result
    

    如果图片是按字母顺序排列的,比如png,那么

    montage *.png -tile XxY -geometry +0+0 result.png
    

    https://www.imagemagick.org/Usage/montage/

    这是一个将大小减少 50% 的示例

    输入(重复4次):

    montage lena.jpg -duplicate 3 -tile 2x2 -geometry 50x50+0+0% lena_montage.jpg
    

    【讨论】:

    • 它不工作。我有 100 张图像,然后结果是分辨率为 19200x10800 的黑色图像。我想要的结果是 1920x1080 分辨率
    • @Phạm Văn Thông。你的 IM 版本是多少?如果 IM 7,则将蒙太奇更改为魔法蒙太奇。如果您的输入图像太大,您可以使用几何参数调整它们的大小,例如 -geometry WxH+0+0,其中 WxH 是所需的宽度和高度。或 -geometry WxH+0+0%,其中 WxH 现在是百分比。听起来您的图像比您想要的大 10 倍。所以你可以使用-geometry 10x10+0+0%。也许您可以发布至少两个(单独但相邻的)输入图像,我可以测试它们的蒙太奇。我将在上面发布一个示例。
    • 感谢您的支持。抱歉,我现在没有图像,但我是通过以下命令完成的:convert -layers flatten input*.PNG output.PNG。我不想将 100 张图片合并到一张图片中。我想将每张图像的 1/100 部分中的 100 个合并到一张图片中。
    • @Phạm Văn Thông 对不起,我不明白你说的每张图片的 1/100 部分的 100 成一张图片是什么意思!这是否意味着您想要 10%x10% 裁剪每个图像的相同区域并将它们蒙太奇,就像我在上面发布的那样?请参阅我对原始答案的第二次编辑。展平多个图像只会将它们一次放置一个。如果它们是不透明的,那么只有最后一个会显示。你需要更好地解释你想要做什么!
    • @Phạm Văn Thông。如果您真的想将图像拼合为一张图像,则它们需要具有透明度;否则,只会显示最后一张图片。如果它们是透明的,也许您想要的是以下内容:convert input*.png -crop 10x10%+X+Y +repage -background white -flatten output.png。其中 X 和 Y 是从左上角到每个图像的公共部分的偏移量,10x10% 意味着它们将在这些偏移量处被裁剪为 1/100 区域。我使用白色背景,但您可以将其更改为任何其他颜色。如果展平后没有透明度,则不需要
    【解决方案2】:

    您可以使用来自ImageMagickconvert 垂直或水平组合图像:

    convert *.PNG -append output.PNG
    

    如果您需要更快的东西,请使用GraphicMagick

    gm convert *.PNG -append output.PNG
    

    您可以使用-append 进行垂直附加,+append 用于水平附加。由于您需要这两个选项,我的不太聪明的解决方案是先创建行,然后将这些行垂直组合以获得最终结果。

    【讨论】:

      猜你喜欢
      • 2016-04-15
      • 1970-01-01
      • 2016-05-04
      • 1970-01-01
      • 2018-06-04
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      相关资源
      最近更新 更多