
Я уверен, что для этого существует простая команда, однако мне не удалось ее найти.
В принципе, я хотел бы сшить фото под другим фото без перекрытия. Также в идеале я хотел бы иметь команду, которая может автоматизировать этот процесс для 200 верхних изображений, где сшито одно и то же нижнее изображение. Все изображения имеют одинаковую ширину, поэтому преобразование не требуется.
Я ищу программу, что-то вроде "stitch -below top.png bottom.png", я изучил варианты вроде Montage, но, похоже, не могу заставить ее работать так, как требуется. Ищу совет.
решение1
Для начала вам нужно открыть терминал и sudo apt-get install imagemagick
.
Теперь поместите все ваши изображения в одну папку, чтобы вы могли легко получить к ним доступ из терминала. Поместите верхние изображения в их собственную папку, а нижнее изображение оставьте в другом месте, чтобы упростить все.
Введите cd DIRNAME
, вам нужно заменить DIRNAME на имя папки, в которой хранятся изображения, например, /home/mark/collating
это то, что я использую для этой цели.
Теперь, когда ваша оболочка находится в нужной папке и imagemagick установлен, мы используем следующее, чтобы склеить изображения:
convert -append image1.jpg image2.jpg output.jpg
Эта команда возьмет два изображения с именами image1 и image2 и прикрепит image2 к нижней части image1, сохранив результат как файл с именем output.jpg.
Чтобы автоматизировать это, вы можете использовать скрипт вроде этого. Вам нужно изменить переменные так, чтобы они указывали на нужные места.
#! /bin/bash
# Replace the values of these variables with the locations of your tops and the bottom.
# The output directory must already exist!
# "~/" is a shortcut for your home dir, FYI.
TopsDir="~/collating/tops" #Only the TOP images should be in this folder!
BottomImg="~/collating/bottom.png"
OutputDir="~/collating/complete"
[ -d "$TopsDir" -a -d "$OutputDir" ] && [ -f "$BottomImg" ] || { echo "One of the paths you supplied wasn't valid."; exit 1;}
cd "$TopsDir"
for TopImg in *; do
convert -append "$TopImg" "$BottomImg" "$OutputDir/$TopImg"
done
Скопируйте и вставьте его в gedit или ваш текстовый редактор иредактировать переменныетак, чтобы они указывали на правильные папки. (Или файл для нижнего изображения.) Сохраните его как collator.sh
. Для следующих шагов будет удобно, если вы сохраните его в своем домашнем каталоге.
Теперь откройте терминал и перейдите туда, где вы сохранили файл. (Вы уже там, если сохранили его в домашнем каталоге, в противном случае введите cd /path/to/your/location
) Введите , chmod +x collator.sh
чтобы предоставить файлу права на выполнение.
И вот мы приступаем к работе:
набираем команду ./collator.sh
для запуска скрипта; и все готово.