Разработки проекта PuppyRus > Программирование и компиляция
Автоматический поворот фотографий
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
--- Конец кода ---
Навигация
Перейти к полной версии