Если вы хотите вложить немного больше усилий, вы можете иметь больше контроля. Если вы сделаете это так, вы можете пометить изображения «на лету», поскольку вы их монтируете, а не сохраняете их все помеченные, а затем монтируете их. Кроме того, можно регулировать ширину, с точки зрения количества изображений в каждой строке, более легко:
#!/bin/bash
number=0
for f in *.tif; do
convert "$f" -gravity northwest -annotate +0+0 "$number" miff:-
((number++))
done | montage -tile x3 - result.png
Он использует формат ImageMagick miff
, что означает Multiple формат файла изображения, чтобы сцепить все выводить изображения и отправлять их в stdin
команды montage
.
Или, вы можете изменить сценарий, как это:
#!/bin/bash
number=0
for f in *.tif; do
convert "$f" -gravity northwest -fill white -annotate +0+0 "$number" miff:-
((number++))
done | montage -tile 2x - result.png
получить
Или, может быть, это ...
#!/bin/bash
number=0
for f in *.tif; do
convert "$f" -gravity northwest -background gray90 label:"$number" -composite miff:-
((number++))
done | montage -tile 2x - result.png
Или с буквами ...
#!/bin/bash
number=0
letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for f in *.tif; do
label=${letters:number:1}
convert "$f" -gravity northwest -background gray90 label:"$label" -composite miff:-
((number++))
done | montage -tile 2x - result.png
Да, ваш ответ очень помог мне. Большое спасибо за подробное описание. Использование for-loop с -композицией miff: - действительно здорово. Я не мог понять две вещи: 1) Если я полностью оставил -backround, это делает фоновый белый (тот же результат, что и белый белый), есть ли способ не использовать какое-либо фоновое поле? 2) Как установить шрифт, например, Times New Roman? -font Times Новый Roman не работает, округляет does -font Times \ New \ Roman Моя команда выглядит так: конвертировать «$ i» -гравитацию на северо-западную точку 120 ярлыка: «$ label» -композиция miff: - –
Используйте '-font" TimesNewRoman ". –
Попробуйте '-background none' –