Как обрезать границы / пробелы с изображения?

52

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

Я знаю, что это можно сделать с помощью программы для Windows под названием Irfanview с опцией «Автоматическая обрезка границ», но я ищу решение на основе Ubuntu и желательно на основе командной строки.

Рафал
источник
Вы пробовали Gimp?
Митч
1
@ Митч Нет, я не знал, что у Gimp есть пакетный режим. В любом случае, использовать ImageMagick Trim проще, поэтому я остановлюсь на этом решении.
Рафал
Дураки обычно предлагают решения с графическим интерфейсом ...
Уилф

Ответы:

65

ImageMagick Trim

Параметр командной строки trimиспользуется вместе convertили mogrifyпозволяет обрезать границы того же цвета, что и углы изображения.

Использование:

convert input.png -trim output.png

Дополнительные параметры -fuzzтакже удаляют цвета возле угловых цветов. Используйте опцию +repageдля удаления холста (если применимо).

ImageMagick Batch Trim (найти)

Вышеприведенную команду для ImageMagick Trim можно также использовать для пакетной обработки изображений в сочетании с findкомандой:

find ./ -name "pattern" -exec convert {} -trim outputfolder/{} \;

обрежет все изображения, которые соответствуют patternчасти команды и сохранит их в новой папке с именем outputfolder.

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

find ./ -name "*.png" -exec convert {} -trim outputfolder/{} \;

ImageMagick Batch Trim (mogrify)

В то время как findпозволяет гораздо больший контроль, где будут размещаться выходные файлы, также возможно сделать то же самое с ImageMagick's mogrify:

mogrify -trim *.png

Обратите внимание, что в отличие от convertи пакетная операция с findи convert mogrify перезаписывает все файлы . Лучше всего сделать резервную копию всех изображений в каталоге, прежде чем продолжить с командой mogrify.

Примечание: mogrifyможет использоваться для выполнения большинства (если не всех) convertопераций в пакетном режиме при перезаписи исходных файлов.

IrfanView

IrfanView прекрасно работает с Wine . Обязательно внимательно проверьте вывод Irfanview, так как он иногда ломает изображения при использовании с Wine.

Takkat
источник
Оно работает. Большое спасибо. Я добавил информацию о пакетной обработке изображений с помощью ImageMagick при комбинированной findкоманде, поскольку она отсутствовала в вашем ответе.
Рафаль
9
Я использовал mogrify -trim *.jpgдля обрезки всех изображений в текущей папке.
Баттл Буткус
1
Это здорово. Это сэкономило мне много времени. TX :)
antmw1361
@ButtleButkus Я отредактировал ответ, чтобы включить эту информацию. Почему-то я забыл об этой опции раньше.
Рафаль
1
Есть ли способ обрезать изображение PNG по его высоте, сохраняя ширину фиксированной?
17