ImageMagick蒙太奇自然文件顺序

时间:2013-07-10 20:15:32

标签: imagemagick

我正在尝试使用ImageMagick蒙太奇功能来组合游戏中的地图块。我的问题是游戏的原始文件按照

自然排序

part1.png part2.png ... part10.png

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

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

1 个答案:

答案 0 :(得分:2)

你可以使用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_dir名称不包含任何空格,则应该完美无缺。