Составьте два изображения в шеллскрипте - PullRequest
1 голос
/ 02 ноября 2011

Привет, друзья! Я пытаюсь составить два изображения в сценарии оболочки imagemagick, но у меня возникли некоторые проблемы.Моя проблема в том, что у меня есть две папки.В первой папке назовем его A, а во втором - на B. Как в папках A, так и в B есть несколько изображений с одинаковыми именами, как в папке A - изображение с именем «a» и папкой с одинаковыми именами.находится в папке B.Теперь я хочу сделать так, чтобы они составлялись с помощью этой команды

composite -compose over -geometry +125+25 -background white
a.png a.png output.png

В этой команде образ папки A с именем 'a.png' будет составляться с папками B 'b.png', а результат будет 'output.png'. Теперь я могу сделать это вручную по очереди, выполнив команду в терминале.Мне нужен сценарий оболочки, с помощью которого я могу составить большое количество файлов. Любая помощь и предложения будут весьма полезны.

1 Ответ

1 голос
/ 02 ноября 2011

Я собираюсь предположить, что вы имели в виду

composite -compose over -geometry +125+25 -background white A/a.png B/a.png output.png

и что вы хотите поместить свои результаты в каталог с именем out.

в следующем:

for afile in A/* ; do
  base=$(basename "$afile")
  composite -compose over -geometry +125+25 -background white "A/$base" "B/$base" "out/$base"
done

Здесь используются две основные функции: подстановка команд и команда basename , которая возвращает только часть имени файла пути.

...