18

如何使用 ImageMagick 平铺图像?我认为我不能使用montage,因为我希望列被原始图像高度的 50% 取代。

展示我正在尝试做的示例可能更容易:

从...开始:

在此处输入图像描述

以:

在此处输入图像描述

谢谢!

4

4 回答 4

23

如果你想要普通的瓷砖,而不是向下移动第二列和其余的偶数列,你可以使用这个脚本:

convert -size 800x600 tile:Ball.jpg Tiles.jpg

(可能大多数登陆这个问题的人都想要这样简单的瓷砖,就像我一样)

我的“Ball.jpg”是 200 x 200 像素,所以这个脚本创建了一个 4x3 的平铺图像。

对于 ImageMagick 7 用户,将 convert 替换为 magick。

于 2017-08-03T16:59:24.013 回答
13

感谢Fred 的 ImageMagick Scripts的 Fred ,解决方案如下:

infile="tile.png"

h2=`convert $infile -format "%[fx:round(h/2)]" info:`

convert $infile \( -clone 0 -roll +0+$h2 \) +append -write mpr:sometile +delete -size 1000x500 tile:mpr:sometile output.png

这正是我一直在寻找的。

于 2011-11-20T14:33:54.883 回答
6

即使您没有提及任何有关使用上下文的内容,我也会将其放在这里,以便更多人知道。Fred 的脚本用于非商业用途。我以另一种解决方案结束,但是,原理是相同的:

  1. 通过以下方式创建移位瓷砖:

    convert _orange_270.jpg -roll +0+135 _orange_270_r.jpg

  2. 创建一列常规图块:

    montage _orange_270.jpg +clone +clone +clone -tile x4 -geometry +0+0 _1col.jpg

  3. 创建一列移位瓷砖:

    montage _orange_270_r.jpg +clone +clone +clone -tile x4 -geometry +0+0 _2col.jpg

  4. 组合常规列和移位列:

    montage -geometry +0+0 _1col.jpg _2col.jpg _2cols.jpg

  5. 使用第 4 点的最后输出创建完整的平铺图像:

    convert _2cols.jpg -write mpr:tile +delete -size 1920x1080 tile:mpr:tile _wallpap.jpg

结果:

在此处输入图像描述

于 2016-04-22T21:29:33.177 回答
0

如果在带有 ImageMagick 的类 unix 系统上,您可以使用我的脚本 tileimage,网址为http://www.fmwconcepts.com/imagemagick/tileimage/index.php

它提供了许多关于翻转、旋转和偏移的变化。

如果非商业用途,那么它是免费的,如果商业用途,然后联系我获得许可。

有关 ImageMagick 平铺的信息,请访问 http://www.imagemagick.org/Usage/canvas/#tile

于 2017-08-03T18:38:45.947 回答