我正在尝试使用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}
答案 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
名称不包含任何空格,则应该完美无缺。