Поверните изображения от терминала

У меня есть каталог с большим количеством изображения, но они находятся в неправильной ориентации. Я хочу повернуть изображения для исправления ориентации (главным образом ±90o). Используя изображение (shotwell фотография) средство просмотра я могу повернуть их индивидуально путем нажимания поворачивать кнопки, но это слишком утомительно.

Я смотрел на man shotwell и shotwell --help-all но нет ничего, что объясняет, как вызвать поворачивать команду из командной строки.

Есть ли какой-либо способ, которым я могу вызвать поворачивать команду shotwell (или какое-либо другое средство просмотра) от терминала? Или любые другие методы для вращения изображений приветствуются также.

33
задан 2 March 2015 в 01:20

6 ответов

При поиске чистой реализации удара ImageMagick convert, команда - то, что Вы ищете:

for szFile in /path/*.png
do 
    convert "$szFile" -rotate 90 /tmp/"$(basename "$szFile")" ; 
done

Выше оставит существующие файлы неповрежденными и скопирует новые в /tmp, таким образом, можно переместить или скопировать их где-то в другом месте, или даже заменяют существующие после преобразования и после проверки .

(и это будет работать над всеми недавними выпусками Ubuntu, поскольку это - стандартное программное обеспечение)

38
ответ дан 23 November 2019 в 00:33
for file in *.JPG; do convert $file -rotate 90 rotated-$file; done

Это скопирует - , вращаются -and-rename Ваши файлы.

, Если Вы хотите оставить исходные файлы нетронутыми просто все же, этот метод может работать хорошо на Вас...

Примечание, что это чувствительно к регистру: если Ваши файлы называют заменой *.jpg нижним регистром (или *.png...) соответственно.

28
ответ дан 23 November 2019 в 00:33

Вот то, как я делаю это:

  1. gThumb

    sudo apt-get install gthumb
    
  2. Установки Открывает наутилус и переходит к Вашему каталогу изображений. Щелкните правой кнопкой по одному и выберите Open with -> gthumb.

  3. Под view меню выбирает Browser или нажимает клавишу Esc . Это откроет браузер каталога, показывающий все Ваши изображения.

    enter image description here

  4. Нажатие Ctrl и выбирает изображения, Вы хотите повернуть или выбрать всех их через Ctrl + .

  5. На панели инструментов, выберите Tools и затем Rotate Right или Rotate Left в зависимости от Вашего предпочтения.

    enter image description here

3
ответ дан 23 November 2019 в 00:33

Если Вы хотите перезаписать оперативный, mogrify от комплекта ImageMagick, кажется, самый легкий способ достигнуть этого:

# counterclockwise:
mogrify -rotate -90 *.jpg

# clockwise:
mogrify -rotate 90 *.jpg
4
ответ дан 23 November 2019 в 00:33

Вы можете скопировать/вставить этот код, и сохранять его как rotate.sh

#!/bin/bash -e

CUR_DIR=$(pwd)
cd $1
for file in *.jpg
do
    convert $file -rotate 90 $file
done
cd $CUR_DIR

После того, чтобы сохранить этот файл, выполнять его от терминала с помощью ./rotate.sh folder_containing_images.

0
ответ дан 23 November 2019 в 00:33

Хорошее решение состоит в том, чтобы сделать ряд резервных копий (например, снабженный префиксом backup-), поверните исходные файлы, производящие ряд новых файлов (снабженный префиксом, например. rotated-), предоставление Вам ряд

  • img-1.png
  • backup-img-1.png
  • rotated-img-1.png
  • img-2.png
  • ... и так далее

mv/cp инструменты [колотят globbing], могут только добавить префиксы, это грязно для устранения их (это использовало бы расширение параметра, ewww...),

rename инструмент позволяет Вам использовать s/before/after/ синтаксис замены (от sed инструмент), чтобы подкачать тот префикс гарантии и перезаписать исходные файлы, таким образом, Ваш полный процесс для данного набора изображений img-{1.. n}.png был бы:

for imgf in img-*.png; do mv "$imgf" "backup-$imgf"; done
for imgf in backup-img-*.png; do convert "$imgf" -rotate 90 "rotated-$imgf"; done

Примечание:

  • Вы могли использовать cp вместо mv, но затем существует 2 копии исходной лжи вокруг (оборотная сторона - Вы, получают конкатенацию префиксов,"rotated-backup-...")
  • вращение по часовой стрелке (-rotate 270 получает Вас 90 ° против часовой стрелки),
  • для отслеживания прогресса добавить echo "Rotating ${imgf#backup-} ... "; после convert вызовы (прежде чем done)
  • для более компактной формы (например, ряд пронумерованных файлов), используйте некоторое расширение параметра как echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)..."; вместо этого

    (Вы не можете удалить префикс, и суффикс в том же расширении параметрического усилителя удара следовательно используют cut )

Затем после проверки, которую Вы не испортили, удаляют изображения путем кладения обратно их к оригиналу

rename 's/^rotated-//;' rotated-*
rm backup-img-*
0
ответ дан 23 November 2019 в 00:33

Другие вопросы по тегам:

Похожие вопросы: