конвертировать и смоделировать: правильный способ использовать их в современных версиях ImageMagick - PullRequest
2 голосов
/ 14 апреля 2020

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

(Для облегчения дальнейших ссылок примеры нумеруются.)

1. convert.exe image.jpg -thumbnail 100x100 ./converted/converted_image.jpg
2. mogrify.exe -thumbnail 100x100 -path ./converted image.png

Теперь у меня есть ImageMagick 7 (скачано только вчера), и во время установки я намеренно установил «Установить устаревшие утилиты (например, convert.exe)» * . То есть у меня в каталоге ImageMagick есть только одна утилита: magick.exe.

Я пытаюсь понять, как правильно и перспективно выполнить вышеупомянутые операции в соответствии с современными версиями ImageMagick.

Цитата из https://imagemagick.org/script/porting.php#cli:

animate, compare, composite, conjure, convert, display, identify, import, mogrify, montage, stream

Чтобы уменьшить объем утилит командной строки, эти утилиты являются символическими c ссылками на magick утилита. Вы также можете вызвать их из утилиты magick, например, используйте magick convert logo: logo.png для вызова утилиты magick.

Из того же источника:

С парсером IMv7, активированным утилитой magick, настройки применяются к каждому изображению в памяти по очереди (если есть). Пока вариант: нужно применять только один раз в глобальном масштабе. Использование других утилит напрямую или в качестве аргумента для magick CLI (например, magick convert) использует устаревший синтаксический анализатор.

Хмм ...

Работает:

3. magick.exe convert image.jpg -thumbnail 100x100 ./converted/converted_image.jpg
4. magick.exe mogrify -thumbnail 100x100 -path ./converted image.png

Все еще работает (так же, как magick.exe convert):

5. magick.exe image.jpg -thumbnail 100x100 ./converted/converted_image.jpg

Однако следующее не работает (ожидается: должно работать так же, как magick.exe mogrify) :

6. magick.exe -thumbnail 100x100 -path ./converted image.png

Мой вопрос: какой синтаксис я должен использовать для convert и для mogrify? 3 и 4, или 4 и 5, или что-то другое?

1 Ответ

4 голосов
/ 14 апреля 2020

AFAIK, и я рад добавить любые предложенные исправления, это работает следующим образом.

Первая идея состоит в том, что вы должны использовать версию 7, если это возможно, и все старые команды v6, С ИСКЛЮЧЕНИЕ convert должно начинаться с префикса magick. Это означает, что вы должны использовать эти

magick ...                # in place of `convert`
magick identify ...       # in place of `identify`
magick mogrify ...        # in place of `mogrify`
magick compare ...        # in place of `compare`
magick compose ...        # in place of `compose`

Если вы используете magick convert, вы получите старое поведение v6, поэтому вы хотите этого избежать!

Кроме того, v7 более требователен к порядку , Вы должны указать изображение, которое вы хотите сделать, чтобы перед тем, как сделает это. Это означает, что старые команды v6, такие как:

convert -trim -resize 80% input.jpg output.jpg

теперь должны стать:

magick input.jpg -trim -resize 80% output.jpg     # magick INPUT operations OUTPUT

Итак, обращаясь конкретно к вашим пронумерованным примерам:

  1. Должно стать:

    magick image.jpg -thumbnail 100x100 ./converted/converted_image.jpg

  2. Должно стать:

    magick mogrify -thumbnail 100x100 -path ./converted image.png

  3. вызывает старое поведение v6, потому что вы используете magick convert вместо простого magick, и его следует избегать

  4. Правильный, современный синтаксис

  5. Правильный, современный синтаксис

  6. Похоже, вы имели в виду magick mogrify, потому что вы не указали имена входных и выходных файлов и потому что вы используете -path, но похоже, что вы случайно пропустили mogrify. Если вы случайно не пропустили mogrify, то вы, вероятно, намеревались использовать старую команду convert -style, и вам нужен входной и выходной файл, и вам нужно указать входной файл перед -thumbnail. * 1060. *

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