2013-07-10 25 views
0

我正在尝试使用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

您可以使用可能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名称不包含任何空格,这应该工作得很好。

+1

如果是“image-1.png”>“image-400.png”'sort -V'为我做了诀窍。 – Alexander