Разработки проекта PuppyRus > Программирование и компиляция

Автоматический поворот фотографий

(1/2) > >>

Neyel:
Установить perl-image-exiftool
Вот набросок:

--- Код ---
variable=( $(/usr/bin/vendor_perl/exiftool foto1.jpg | grep Orientation | sed 's|.*: ||' | sed 's| |_|') )
case $variable in
Rotate_90)
echo "Повернуть против часовой стрелки"
;;
Rotate_270)
echo "Повернуть по часовой стрелке"
;;
*)
echo "Не поворачивать"
;;
esac
--- Конец кода ---
Сам поворот осуществлять думаю с помощью ffmpeg  :)

knn:
просто по случаю упомяну что есть прога 'ida'.
имхо - мала, "своё отрабатывает"( функционал относительно скромен, но "он есть"...) .
что в зависимостях, как ставится с ходу не скажу ( не раз пользовался по мелочам - понравилось)
-----
зы
) ffmpeg не умаляю

Neyel:

--- Цитата: knn от 21 Март 2021, 17:28:57 ---есть прога 'ida'
--- Конец цитаты ---
Погуглил - вроде дисассемблер какой-то - причём здесь поворот фотографий - ума не приложу

knn:
- недопонял про дизассемблер, но это ладно.
- под поворот фоток приспособил себе "контекст-Rox~a" -
~/.config/rox.sourceforge.net/SendTo/редк/jpegtran-90 :

--- Код ---
#!/bin/sh

# 210403 --knn --поворот изобр. по час.-стрелке

path=$(echo "$@")

jpegtran -rotate 90 "${path}" > /tmp/tmp.jpg

mv /tmp/tmp.jpg "${path}"
--- Конец кода ---
есть еще ~/config_ln/rox.sourceforge.net/SendTo/редк/jpegtran-270.  мне вполне достаточно (если вверхногами - 2х90).
# т.е. пользую в роксе-с-включеным-миниатюрами

ps
с "групповым переворотом" решил тогда не заморачиваться.

upd
pps
- ! НО грубо говоря это только для *.jpg( в моем телефоне например такой формат выставлен), а то "стоково" применяя для других форматов и картинки попортить можно

Neyel:
Набросал скрипт на коленке - работоспособность не проверял
Обрабатывает все файлы *.jpg во входном каталоге

--- Код ---
input_dir="Здесь каталог с изображениями"
output_dir="Здесь выходной каталог"
cd "$input_dir"
for file in *.jpg; do
  variable=( $(/usr/bin/vendor_perl/exiftool "$file" | grep Orientation | sed 's|.*: ||' | sed 's| |_|') )
  case $variable in
Rotate_90)
ffmpeg -i "$file" -vf transpose=2 "$output_dir"/"$file"
;;
Rotate_270)
ffmpeg -i "$file" -vf transpose=1 "$output_dir"/"$file"
;;
*)
cp "$file" "$output_dir"
;;
  esac
done
--- Конец кода ---

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии