Поиск по сайту:

Как пакетно редактировать фотографии в терминале Linux


Вам следует проверить, что делают команды терминала, которые вы копируете/вставляете из Интернета, прежде чем запускать их! Хотя я объяснил их в этой статье, команды могут иметь непреднамеренное воздействие на различные системы, и известно, что люди публикуют в Интернете безобидные на вид команды, которые на самом деле могут нанести большой ущерб.

Пакетное удаление данных EXIF из изображений

Данные EXIF содержат информацию об устройстве, которое использовалось для съемки фотографии, информацию о цвете и другие данные, полезные для фотографов. Оно также может включать место, где была сделана фотография, что является проблемой конфиденциальности, если вы загружаете изображение в Интернет.

Вы можете удалить все данные EXIF из пакета изображений JPG и PNG, используя следующую команду терминала Linux:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -strip "/path/to/output_directory/$(basename "$file")"; done

Вот краткое объяснение того, как эта команда (и другие на этой странице) выполняет массовое редактирование нескольких файлов изображений:

  • Цикл for перебирает все файлы .jpg, .jpeg и .png (обратите внимание, что имена и расширения файлов чувствительны к регистру!) в исходном каталоге. Внутри цикла путь к каждому файлу изображения присваивается переменной $file.
  • Переменная $file передается команде ImageMagick convert с опцией -strip, которая указывает ей удалить все данные EXIF.
  • Последний параметр, передаваемый команде преобразования, — это путь к выходному файлу. В этом случае выходные данные сохраняются в другой папке с тем же именем файла, поэтому исходное изображение остается нетронутым.

Пакетное изменение размера фотографий

Приведенная ниже команда терминала ImageMagick изменяет размер всех изображений в исходном каталоге до 1024x768 пикселей с помощью параметра -resize:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -resize 1024x768 "/path/to/output_directory/$(basename "$file")"; done

Здесь вы можете указать любое разрешение, но имейте в виду, что ваше изображение будет растянуто, если соотношение сторон не будет соответствовать.

Пакетное кадрирование фотографий

Эта команда обрезает изображения в каталоге до размера 800x600 пикселей:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -crop 800x600+0+0 "/path/to/output_directory/$(basename "$file")"; done

Обратите внимание на параметр 800x600+0+0, передаваемый в параметр -crop: бит 800x600 – это размеры в пикселях, которые вы хотите обрезать (область фотографию, которую вы хотите сохранить). +0+0 — это пиксельные координаты X/Y того места, где должна начинаться обрезка, в данном случае начиная с верхнего левого угла.

Пакетное изображение водяных знаков

Добавление водяных знаков к изображениям — это простой способ защитить вашу творческую работу, когда вы делитесь ею с другими. Эта команда терминала Linux добавляет водяной знак к пакету файлов:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -gravity southeast -pointsize 20 -draw "text 5,5 'My Watermark'" "/path/to/output_directory/$(basename "$file")"; done

В этом примере команда convert использует параметр -gravity в сочетании с параметром -draw для рисования текста. > «Мой водяной знак» со шрифтом размером 20 в правом нижнем углу (юго-восточном углу) каждого изображения. Координаты 5,5 пикселей определяют смещение от юго-восточного угла, добавляя поле в 5 пикселей между текстом водяного знака и краем изображения.

Преобразование форматов файлов изображений

Этот пакет команд ImageMagick преобразует изображения JPG в PNG:

for file in /path/to/source_directory/*.{jpg,jpeg}; do convert "$file" "/path/to/output_directory/$(basename "${file%.*}.png")"; done

Формат выходного изображения определяется именем файла, которое вы ему даете. Команда преобразования ImageMagick поддерживает следующие популярные форматы файлов изображений: JPEG, PNG, GIV, TIFF, BMP, SVG, WEBP, HEIC и RAW. Он также может обрабатывать файлы PDF и векторные изображения SVG.

Массовый поворот изображений

Вы можете массово повернуть изображения, используя следующую команду:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -rotate 90 "/path/to/output_directory/$(basename "$file")"; done

Замените указанные 90 градусов поворотом, который вы хотите применить.

Пакетное переворачивание (зеркало) изображений

Используйте параметры преобразования flip и flop ImageMagick, чтобы перевернуть изображения по вертикали или по горизонтали:

Чтобы перевернуть или отразить изображения по вертикали:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -flip "/path/to/output_directory/$(basename "$file")"; done

Чтобы перевернуть изображения по горизонтали:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -flop "/path/to/output_directory/$(basename "$file")"; done

Изменить качество JPEG

Вы можете уменьшить размер изображений JPG, уменьшив их качество:

for file in /path/to/source_directory/*.jpg; do convert "$file" -quality 85 "/path/to/output_directory/$(basename "$file")"; done

Эта команда устанавливает качество изображений на 85 с помощью параметра -quality. Обратите внимание: когда вы снижаете качество изображения, это качество невозможно восстановить (даже путем изменения качества обратно на более высокое значение).

Качество JPEG устанавливается по шкале от 0 до 100, где 100 — максимальное качество для архивного хранения и профессиональной фотографии, а 60–75 — подходящее для обмена в Интернете или для использования на веб-сайтах. Все, что меньше 50, начнет выглядеть немного потрепанным, даже при уровне масштабирования по умолчанию.

Массовое переименование изображений

Команду cp (копировать) можно использовать для массового переименования изображений в Linux:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do cp "$file" "/path/to/output_directory/$(basename "${file%.*}_renamed.${file##*.}")"; done

В этом примере текст _renamed добавляется ко всем изображениям в исходном каталоге.

Автоматическая обрезка и обрезка

Параметр -trim команды преобразования автоматически обрезает изображения на основе цвета фона, определяемого цветом пикселей в каждом из углов изображения:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -trim "/path/to/output_directory/$(basename "$file")"; done

Объединяйте изображения для создания коллажей

Инструмент монтажа ImageMagick можно использовать для создания коллажей и объединения изображений:

montage /path/to/source_directory/*.{jpg,jpeg,png} -tile 2x2 -geometry +5+5 "/path/to/output_directory/collage.jpg

Эта команда берет все изображения в исходном каталоге и создает из них сетку 2x2 с помощью параметра -tile с зазором в 5 пикселей, заданным параметром -geometry. Если изображений более 4, для их отображения будут созданы дополнительные сетки.

Linux ❤️ Творчество

Linux становится все более популярным среди творческих людей. Программное обеспечение для творчества не только достигло точки, когда его можно использовать в профессиональных сценариях, но и инструменты командной строки и автоматизации могут сэкономить вам время на управлении и преобразовании изображений для публикации и совместного использования.

Статьи по данной тематике: