使用ImageMagick重复或"平铺"图像

Mik*_*ike 12 image imagemagick tile montage

如何使用ImageMagick平铺图像?我不认为我可以使用,montage因为我希望列移位原始图像高度的50%.

显示我正在尝试做的事情的示例可能更容易:

从...开始:

在此输入图像描述

结束于:

在此输入图像描述

谢谢!

Mik*_*ike 12

感谢Fred在Fred的ImageMagick脚本中,这是解决方案:

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
Run Code Online (Sandbox Code Playgroud)

这正是我所寻找的.


Bea*_*ode 9

如果您想要普通图块,而无需向下移动第二列和其余偶数列,则可以使用以下脚本:

"C:\Program Files\ImageMagick-7.0.6-Q16\magick.exe" -size 800x600 tile:Ball.jpg Tiles.jpg
Run Code Online (Sandbox Code Playgroud)

(大概大多数人都像我一样想要这种普通瓷砖)

用您自己的ImageMagick版本替换“ -7.0.6-Q16”

我的“ Ball.jpg”是200 x 200像素,因此此脚本创建了一个4x3的拼贴图像

  • Linux 上的用法相同:`convert -size 800x600tile:Ball.jpg Tiles.jpg` (2认同)
  • @Rodrigo我想这是因为“tile”[伪图像格式](https://imagemagick.org/script/formats.php#pseudo)被指定为文件名中的前缀。根据 Convert 手册页,输入文件名应放在输入选项之前: `convert [input-option] input-file [output-option] output-file` (2认同)

Jan*_* S. 5

即使你没有提到任何关于使用情况的内容,我也会把它放在这里让更多人知道.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

结果:

在此输入图像描述