Как изменить размер файлов PNG в пакетном режиме?

#image #image-processing

#изображение #обработка изображений

Вопрос:

У меня есть несколько файлов изображений PNG, которые я хотел бы увеличить в размере. Я не хочу изменять масштаб изображения.Я просто хочу расширить белый фон дальше вниз и вправо. В терминах GIMP я хочу увеличить размер холста и покрыть увеличенную область белыми пикселями в пакетном контексте. Входные изображения могут быть разных размеров, но все выходные изображения должны иметь фиксированный размер (например, 1280 x 720 пикселей).

Я пробовал это с помощью различных онлайн-инструментов, с помощью GIMP и с очень старой версией Photoshop. Большинство инструментов, которые я пробовал на сегодняшний день, выполняют одно из следующих действий, которые мне не нужны:

  • Измените масштаб существующего изображения, чтобы оно соответствовало новому размеру холста, или
  • Расположите исходное изображение по центру и расширьте холст во всех направлениях, или
  • Не удается выполнить это в пакетном режиме.

Я просто хочу расширить существующие изображения PNG дополнительными белыми пикселями вниз и вправо. Какой самый простой способ сделать это с большим количеством файлов?

Ответ №1:

imagemagick — обычный инструмент для этого. -crop операция в сочетании с -gravity , вероятно, может делать то, что вы хотите.

magick input.jpg -crop 1000x1000 0 0! -background white -flatten output.png

источник магического заклинания: https://legacy.imagemagick.org/Usage/crop /

ввод
вывод

Ответ №2:

В ImageMagick вы обрабатываете целую папку изображений с помощью mogrify. Вы можете расширить их с помощью -extent . С помощью mogrify разумно сначала создать новый пустой каталог для хранения результатов. Итак

 cd image_directory
mogrify -format png -path path/to/new_directory -background white -gravity northwest -extent WxH *.png
 

Где WxH — это желаемая конечная ширина и высота после заполнения белым цветом. Предполагается, что все изображения будут дополнены до одинаковой ширины и высоты

Развернуть по размеру

 cd test1
mogrify -format png -path ../test2 -background white -gravity northwest -extent 500x500 *.jpg
 

Увеличить на процент

 cd test1
mogrify -format png -path ../test2 -background white -gravity northwest -extent 150x150% *.jpg
 

Для ImageMagick 7 добавьте magick перед mogrify. Итак, «магия может измениться …»

Ответ №3:

Команда ImageMagick, которая сделала то, что мне было нужно, использовала «преобразовать» с аргументами -geometry и -composite . В контексте пакетного файла Windows:

 for %%a in (img*.png) do (
   magick convert -size 1280x720 xc:white "%%a" -geometry 512x384 40 40 -composite "work-%%~na.pdf"
)