Установить 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 :)
- недопонял про дизассемблер, но это ладно.
- под поворот фоток приспособил себе "контекст-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( в моем телефоне например такой формат выставлен), а то "стоково" применяя для других форматов и картинки попортить можно
Набросал скрипт на коленке - работоспособность не проверял
Обрабатывает все файлы *.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
2Neyel:
Rotate_90)
ffmpeg -i "$file" -vf transpose=2
'transpose=1/2' - вроде наоборот (# у себя - поправил)
----------------
upd:
- с "мультивыбором" файлов :
for f in "${@}" ; do ffmpeg -y -i "${f}" -vf transpose=1 "${f}" ; done
( пр.: накликал файлы в Rox ч/з 'Ctrl+ПКМ' и повернул [т.е. нужны "парные контексты - 90/270 ...+ кому надо - '/180' " ] )