Этот размер чаще всего избыточен для простого выкладывания фотографии в сети или отправки по электронной почте. Обычно для просмотра на экране вполне годятся фотографии с разрешением 1 мегапиксель и менее.
Создать копии в низком разрешении из набора фотографий в высоком разрешении можно, конечно, вручную, загружая каждую фотографию в графический редактор, уменьшая и сохраняя под другим именем или в другом месте. Можно это сделать и без графического редактора, с помощью программы
convert
из пакета ImageMagick:$ convert -quality 90 -resize 640x640 большое-фото.jpg уменьшенное-фото.jpg
Программа
convert
позволяет автоматизировать многие операции обработки графики. В данном случае она берёт файл (большое-фото.jpg
), уменьшает до размера, не превышающего 640x640 (-resize 640x640
), и сохраняет в формате JPEG с уровнем качества 90% (-quality 90
) уменьшенное изображение в файле уменьшенное-фото.jpg
.А если файлов много? Просто и быстро это можно сделать сделать одной командой командной оболочки выполненной в каталоге с фотографиями:
$ mkdir lowres; for f in *.jpg ; do convert -quality 90 -resize 640x640 "$f" "lowres/${f%.jpg}-640.jpg" ; done
Что делает эта команда: создаёт подкаталог
lowres
в текущем каталоге (mkdir lowres
); далее для всех файлов с разрешением .jpg
(for f in *.jpg ; do ... ; done
) вызывает программу конвертации (convert
).Программа ковертации сохраняет уменьшенные изображения в подкаталоге
lowres
под именем с окончанием -640.jpg
. Так, если в исходном каталоге были изображения с именами мама.jpg
, папа.jpg
, я.jpg
, то после выполнения указанной команды должен появиться подкаталог lowres/
с изображениями мама-640.jpg
, папа-640.jpg
, я-640.jpg
. Изменённые имена файлов позволят не спутать их с исходными изображениями в высоком разрешении.Набор команд между
do
и done
повторяется несколько раз, для каждого файла подходящего по шаблону *.jpg
. Имя обрабатываемого файла при этом хранится в "переменной" f
. Запись $f
позволяет получить это имя файла, а ${f%.jpg}
отсекает (%
) от имени файла окончание .jpg
. Обратите внимание, что имена файлов берутся в двойные кавычки: "$f"
, "${f%.jpg}-640.jpg"
-- это позволяет обрабатвать также имена файлов содержащие пробелы.Конструкцию
for f in шаблон ; do что сделать с каждым файлом ; done
удобно использовать и для многих других целей. Например, для автоматического переименования или копирования файлов.