Переворачивание изображений в папке

Модератор: Модераторы разделов

Faegami
Сообщения: 7
ОС: Linux Mandriva 2009.0

Переворачивание изображений в папке

Сообщение Faegami »

Имеется папка с отсканированной книгой, причём листы через один (те, которые с нечётными номерами - 001.tif, 003.tif...) перевёрнуты на 180 градусов. Как можно повернуть их, чтобы все были в нормальном положении?
Спасибо сказали:
alfss
Сообщения: 262

Re: Переворачивание изображений в папке

Сообщение alfss »

1 не папка а директория или каталог

ImageMagic

Код: Выделить всё

#!/bin/bash

for I in `seq 10`
do
    if [ `expr $I % 2` == 1 ]; then
        echo `convert -rotate 180 00$I.png 00$I-180.png`
    fi
done
Спасибо сказали:
Faegami
Сообщения: 7
ОС: Linux Mandriva 2009.0

Re: Переворачивание изображений в папке

Сообщение Faegami »

alfss писал(а): ↑
16.01.2009 19:17
ImageMagic

Код: Выделить всё

#!/bin/bash

for I in `seq 10`
do
    if [ `expr $I % 2` == 1 ]; then
        echo `convert -rotate 180 00$I.png 00$I-180.png`
    fi
done

Спасибо. Что надо сюда добавить, чтобы переворачивались и изображения с именами 011 и т.д.? В этом варианте только до 009.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Переворачивание изображений в папке

Сообщение SLEDopit »

Код: Выделить всё

#!/bin/bash
echo -n Number of files:
read n
for I in `seq $n`
do
    if [ `expr $I % 2` == 1 ]; then
        echo `convert -rotate 180 $(printf '%0.3d' $n).png $(printf '%0.3d' $n)-180.png`
    fi
done
тут вручную идет опрос с каким количеством файлов работать будет. (корректная работа до 999).
но тут только если все файлы имеют формат png и имена 001-999. не универсальный способ :)
зы а вообще google advanced bash scripting. очень полезная вещь)
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Faegami
Сообщения: 7
ОС: Linux Mandriva 2009.0

Re: Переворачивание изображений в папке

Сообщение Faegami »

Всем спасибо, получилось у самого:

Код: Выделить всё

#!/bin/bash -x

for I in *.tiff
do
    J=`echo $I | cut -d"." -f1`
    if [ `expr $J % 2` == 1 ]; then
        echo `convert -rotate 180 $J.tiff $J.tiff`
    fi
done

Не зависит от количества файлов.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Переворачивание изображений в папке

Сообщение Portnov »

Есть ещё такой умный ключик у seq - -w.

Код: Выделить всё

[portnov]$ seq -w 10
01
02
03
04
05
06
07
08
09
10


Добавляет перед числами подходящее количество нулей.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: