Пакетное конвертирование изображений 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)