У меня есть каталог с большим количеством изображения, но они находятся в неправильной ориентации. Я хочу повернуть изображения для исправления ориентации (главным образом ±90o). Используя изображение (shotwell фотография) средство просмотра я могу повернуть их индивидуально путем нажимания поворачивать кнопки, но это слишком утомительно.
Я смотрел на man shotwell
и shotwell --help-all
но нет ничего, что объясняет, как вызвать поворачивать команду из командной строки.
Есть ли какой-либо способ, которым я могу вызвать поворачивать команду shotwell (или какое-либо другое средство просмотра) от терминала? Или любые другие методы для вращения изображений приветствуются также.
При поиске чистой реализации удара ImageMagick convert
, команда - то, что Вы ищете:
for szFile in /path/*.png
do
convert "$szFile" -rotate 90 /tmp/"$(basename "$szFile")" ;
done
Выше оставит существующие файлы неповрежденными и скопирует новые в /tmp
, таким образом, можно переместить или скопировать их где-то в другом месте, или даже заменяют существующие после преобразования и после проверки .
(и это будет работать над всеми недавними выпусками Ubuntu, поскольку это - стандартное программное обеспечение)
for file in *.JPG; do convert $file -rotate 90 rotated-$file; done
Это скопирует - , вращаются -and-rename Ваши файлы.
, Если Вы хотите оставить исходные файлы нетронутыми просто все же, этот метод может работать хорошо на Вас...
Примечание, что это чувствительно к регистру: если Ваши файлы называют заменой *.jpg нижним регистром (или *.png...) соответственно.
Вот то, как я делаю это:
gThumb
sudo apt-get install gthumb
Установки Открывает наутилус и переходит к Вашему каталогу изображений. Щелкните правой кнопкой по одному и выберите Open with -> gthumb
.
Под view
меню выбирает Browser
или нажимает клавишу Esc . Это откроет браузер каталога, показывающий все Ваши изображения.
Нажатие Ctrl и выбирает изображения, Вы хотите повернуть или выбрать всех их через Ctrl + .
На панели инструментов, выберите Tools
и затем Rotate Right
или Rotate Left
в зависимости от Вашего предпочтения.
Если Вы хотите перезаписать оперативный, mogrify
от комплекта ImageMagick, кажется, самый легкий способ достигнуть этого:
# counterclockwise:
mogrify -rotate -90 *.jpg
# clockwise:
mogrify -rotate 90 *.jpg
Вы можете скопировать/вставить этот код, и сохранять его как 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
.
Хорошее решение состоит в том, чтобы сделать ряд резервных копий (например, снабженный префиксом 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-*