Сайт | Скачать | Видео | Wiki

Автор Тема: Автоматический поворот фотографий  (Прочитано 2043 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Установить 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

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: Автоматический поворот фотографий
« Ответ #1 : 21 Март 2021, 17:28:57 »
просто по случаю упомяну что есть прога 'ida'.
имхо - мала, "своё отрабатывает"( функционал относительно скромен, но "он есть"...) .
что в зависимостях, как ставится с ходу не скажу ( не раз пользовался по мелочам - понравилось)
-----
зы
) ffmpeg не умаляю
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Автоматический поворот фотографий
« Ответ #2 : 21 Март 2021, 20:40:56 »
есть прога 'ida'
Погуглил - вроде дисассемблер какой-то - причём здесь поворот фотографий - ума не приложу

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: Автоматический поворот фотографий
« Ответ #3 : 03 Июль 2021, 18:52:47 »
- недопонял про дизассемблер, но это ладно.
- под поворот фоток приспособил себе "контекст-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( в моем телефоне например такой формат выставлен), а то "стоково" применяя для других форматов и картинки попортить можно
« Последнее редактирование: 03 Июль 2021, 19:44:12 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Автоматический поворот фотографий
« Ответ #4 : 29 Апрель 2022, 08:04:59 »
Набросал скрипт на коленке - работоспособность не проверял
Обрабатывает все файлы *.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

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: Автоматический поворот фотографий
« Ответ #5 : 30 Апрель 2022, 09:50:00 »
Спасибо за "ffmpeg-поворот-картинок".
Отлично (vs 'jpegtran') что он вертит вроде все расширения ! # проверял пока только на '.png'
--------------------------
зы
если окажется, что вертеть можно действительно различные расширения, то пока не могу определиться - нужно ли в скрипте делать проверку расширений на "набор соответствующий изображениям"... - ? не способен ли ffmpeg "бить" другие( некартиночные) форматы как это делает например 'jpegtran' ( "бьёт" 'png' ) [ что недостоверно т.к. раньше расширение у меня задавалось скриптом...]
« Последнее редактирование: 30 Апрель 2022, 10:00:22 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: Автоматический поворот фотографий
« Ответ #6 : 30 Апрель 2022, 10:32:17 »
Спасибо за "ffmpeg-поворот-картинок".

- себе пока сделал контекст-rox~а ( для режима с просмотром миниатюр):
Код
# cat ~/.config/rox.sourceforge.net/SendTo/-90-rate_ffmpeg_singl.sh
#!/bin/sh
#  220430
#  контекст-скрипт
#  90-rate_ffmpeg_singl.sh
#  '-y' == перезаписывать входящ. файл без подтверждения.
#  ? добавлять ли "мультивыбор" ? --~=


ffmpeg -y -i "${@}" -vf transpose=1  "${@}"
- c png, jpg - работает - др. форматы не проверял.
-----------------------
upd:
ps:
? что за ключ '-vf' у 'ffmpeg' ?
« Последнее редактирование: 30 Апрель 2022, 11:10:52 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: Автоматический поворот фотографий
« Ответ #7 : 30 Апрель 2022, 11:13:40 »
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' " ] )
« Последнее редактирование: 30 Апрель 2022, 11:36:08 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Автоматический поворот фотографий
« Ответ #8 : 30 Апрель 2022, 13:04:16 »
2Neyel:
Цитата: Neyel от Вчера в 08:04:59
Rotate_90)
      ffmpeg -i "$file" -vf transpose=2
'transpose=1/2' - вроде наоборот (# у себя - поправил)
вроде верно. Если фото повернуто на 90 град по час стрелке - то его надо повернуть против часовой - transpose=2 как раз это и делает Вообщем проверю как руки дойдут работоспособность скрипта
Rotate_90)
exiftool в данном случае показывает что фото повернуто на 90 град по часовой стрелке :)
exiftool вытаскивает тег, которые пишет к каждому фото мобильник - в этом теге есть информация на какой угол повернута фотография
« Последнее редактирование: 30 Апрель 2022, 13:06:43 от Neyel »

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: Автоматический поворот фотографий
« Ответ #9 : 30 Апрель 2022, 13:22:15 »
:) - дошло, что задумка - "автоправка ротации фоток в каталоге" (я-то в свой "контекст" уперся).
--------
зы
проверил:
ffmpeg не вертит: файлы незнакомых расширений( и вообще без оных); svg ....
          вертит: jpg, png, gif...(...?).
-- в смысле теоретически можно "уйти от 'jpg' в Скрипте"...( ! возможно и есть опасность, но по "первым моим пробам" - пока вроде её  - нет)
=============
upd:
с ffmpeg-ключем '-y' (overwrite) - можно править в том же каталоге...
( + если можно - 180 добавить...)
« Последнее редактирование: 30 Апрель 2022, 13:39:26 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.