ImageMagick蒙太奇自然文件顺序

ImageMagick蒙太奇自然文件顺序,imagemagick,Imagemagick,我正在尝试使用ImageMagick蒙太奇功能来组合游戏中的地图块。我的问题是,游戏的原始文件自然是按如下顺序排列的 第1部分.png 第2.png部分 ... 第10部分.png ImageMagick读取此内容,并在part1.png之后平铺part10.png。是否有一个标志/选项告诉IM以我希望的方式读取目录?这是我正在做的一个实时代码示例 montage \ -alpha on \ -background

我正在尝试使用ImageMagick蒙太奇功能来组合游戏中的地图块。我的问题是,游戏的原始文件自然是按如下顺序排列的

第1部分.png 第2.png部分 ... 第10部分.png

ImageMagick读取此内容,并在part1.png之后平铺part10.png。是否有一个标志/选项告诉IM以我希望的方式读取目录?这是我正在做的一个实时代码示例

montage                    \
    -alpha on              \
    -background none       \
    -mode concatenate      \
    -tile x{$grid}         \
    -mattecolor none       \
    {$input_dir}/*.png     \
    {$output_file}

您可以使用
sort-g
(这是通用的数字排序)来获取所需内容

测试:

创建12个虚拟文件:

for i in {1.12} ; do touch ${i}.txt ; done
列出文件:

ls -1 *.txt
  1.txt
  10.txt
  11.txt
  12.txt
  2.txt
  3.txt
  4.txt
  5.txt
  6.txt
  7.txt
  8.txt
  9.txt
使用
sort-g
以不同的顺序列出它们:

ls -1 *.txt | sort -g
  1.txt
  2.txt
  3.txt
  4.txt
  5.txt
  6.txt
  7.txt
  8.txt
  9.txt
  10.txt
  11.txt
  12.txt
现实生活:

现在应用此方法解决您的问题:

montage                                    \
    -alpha on                              \
    -background none                       \
    -mode concatenate                      \
    -tile x{$grid}                         \
    -mattecolor none                       \
     $(ls -1 {$input_dir}/*.png | sort -g) \
     {$output_file}
如果您的
$input\u dir
名称不包含任何空格,这应该可以完美地工作。

对于“image-1.png”>“image-400.png”
排序-V
帮了我的忙。