Как использовать imagemagick для массовой обрезки пробелов изображений так же, как "trim ()" строки? - PullRequest
1 голос
/ 10 июля 2020

У меня есть много PNG, загруженных пользователями.

Однако вокруг них есть пробелы, которые следует удалить.

Например:

Изображение вроде этого:

enter image description here

Should be cropped to an image like this:

введите описание изображения здесь

Что мне делать, если я хочу сделать это для всех файлов, соответствующих *_spec.PNG файлам в каталоге и всех его подкаталогах?

Примеры файлов:

Folder
 |
 Subfolder1 - file1_spec.png
            - file2_spec.png
            - file3.png
 |
 Subfolder2 - filea.png
            - fileb1_spec.png

Мне нужно сделать это с этими файлами:

  • Subfolder1 / file1_spe c .png
  • Subfolder1 / file2_spe c .png
  • Subfolder2 /fileb1_spec.png

Обновление:

  1. ОС: MacOSX Mojave 10.14.6
  2. Версия Imagemagick: 7.0.10-22 Q16 x86_64 2020-06-27

1 Ответ

3 голосов
/ 10 июля 2020

Я бы сделал КОПИЮ ваших файлов в резервном каталоге, прежде чем вы что-нибудь сделаете. Затем go в верхний каталог и запустите:

find . -iname "*_spec.png" -exec mogrify -trim {} \;

Обратите внимание, что есть более эффективные способы сделать это, но они менее читабельны и действительно того стоят, если у вас есть десятки тысяч файлов, или больше. Для всех, кому это интересно, это означает использование GNU Parallel и / или обрезку более одного файла за один вызов ImageMagick , чтобы лучше амортизировать время создания процесса для нескольких файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...