Пакетное конвертирование изображений Ubuntu

Когда необходимо изменить много фотографий, то на помощь приходят скрипты.

Удаление пробелов в именах файлов:

rename ‘tr/ /_/;$_=lc;’ *

Транслитерация кириллических имен файлов:

#!/bin/bash
# Перекодирует рекурсивно в текущем каталоге имена
# файлов и каталогов в транслит.
shopt -s nullglob
for NAME in * ; do
TRS=`echo $NAME | sed "y/абвгдезийклмнопрстуфхцы/abvgdezijklmnoprstufxcy/"`
TRS=`echo $TRS | sed "y/АБВГДЕЗИЙКЛМНОПРСТУФХЦЫ/ABVGDEZIJKLMNOPRSTUFXCY/"`
TRS=${TRS//ч/ch};
TRS=${TRS//Ч/CH} TRS=${TRS//ш/sh};
TRS=${TRS//Ш/SH} TRS=${TRS//ё/jo};
TRS=${TRS//Ё/JO} TRS=${TRS//ж/zh};
TRS=${TRS//Ж/ZH} TRS=${TRS//щ/sh\'};
TRS=${TRS///SH\'} TRS=${TRS//э/je};
TRS=${TRS//Э/JE} TRS=${TRS//ю/ju};
TRS=${TRS//Ю/JU} TRS=${TRS//я/ja};
TRS=${TRS//Я/JA} TRS=${TRS//ъ/\`};
TRS=${TRS//ъ\`} TRS=${TRS//ь/\'};
TRS=${TRS//Ь/\'}
if [[ `file -b "$NAME"` == directory ]]; then
mv -v "$NAME" "$TRS"
cd "$TRS"
"$0"
cd ..
else
mv -v "$NAME" "$TRS"
fi
done

Изменение размера изображений:

for fname in *.jpg; do mogrify -resize 1024 $fname; done
for fname in *.jpeg; do mogrify -resize 1024 $fname; done
for fname in *.JPG; do mogrify -resize 1024 $fname; done

Насчет конвертации с помощью библиотеки ImageMagick есть хорошая статья.

Изменение размера изображений - скрипт на python3

Эта программа на питоне эффективнее сжимает изображения, чем предыдущий скрипт. Используется библиотека обработки изображений Python Image Library (PIL). Эта библиотека имеет много возможностей, например генерация изображения, поворот и тд.

# Создание уменьшенных копий изображений (thumbnail)
import os,sys
from PIL import Image # модуль PIL - для обработки изображений
size = (1280,1280)

for infile in sys.argv[1:]: # для файлов, указанных в командной строке
    outfile = os.path.splitext(infile)[0] + "_thumbnail.jpg" # новое имя файла = старое имя без расширения + '_thumbnail.jpg'
    if infile != outfile: # если эти имена не совпадают
        try:  # попытаться
            im = Image.open(infile) # открыть файл для чтения
            im.thumbnail(size)  # уменьшить размер
            im.save(outfile, "JPEG") # сохранить в новом файле с форматом JPEG
        except IOError:  # при ошибке ввода/вывода
            print("не могу создать миниатюру для", infile)