2013-07-10 27 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