Вопрос или проблема
Я использую convert
для повторной компрессии изображений в webp для публикации. Моя команда в командной строке:
convert -quality 70 input.jpg test.webp
Это работает в Mint 20 (ImageMagick 6.9.10-23), но в Mint 22 (ImageMagick 6.9.12-98) флаг -quality, похоже, совсем не работает. Независимо от того, укажу ли я -quality 1 или -quality 99, я получаю один и тот же результат. Однако -quality 100 создает гигантское (я предполагаю, несжатое изображение)
Это звучит как регрессия, о которой вы хотели бы сообщить в Mint как об ошибке.
В любом случае, вы можете избежать использования convert
для задач сжатия. Прежде всего, сами ImageMagick находятся на пути к устареванию отдельного инструмента convert
в пользу magick
. (Попробуйте magick convert …
, возможно, регрессия заключается только в синтаксическом анализе командной строки convert
, и тогда это будет простое исправление.)
На моем компьютере GraphicsMagick ощутимо быстрее (~10%) чем ImageMagick (я не профилировал, почему, это 20-летний форк ImageMagick с немного более удобным интерфейсом командной строки и с меньшим количеством уязвимостей, так что, возможно, это просто меньше исторического хлама?), и его
gm convert -quality 70 large_input_image.jpeg out.webp
кажется, создает значительно больший вывод, чем -quality 1
и значительно меньший вывод, чем -quality 100
.
Он доступен в Mint 22 через sudo apt install graphicsmagick
.
Ответ или решение
Вопрос, касающийся неработоспособности настройки уровня качества при конвертации изображений в формат WebP с помощью команды convert
в Linux Mint 22, требует комплексного анализа. Данная проблема проявляется в том, что независимо от установленного значения параметра -quality
, результат остается неизменным, за исключением выставленного значения 100, которое приводит к созданию изображения гигантского размера.
Причины проблемы
-
Версия ImageMagick:
В Mint 22 используется версия ImageMagick 6.9.12-98, тогда как в Mint 20 применялась версия 6.9.10-23. Это может указывать на наличие регрессии в более новой версии, которая могла затронуть обработку параметра качества. -
Депрекация команды
convert
:
Есть данные о том, что командаconvert
постепенно выводится из обращения. Вместо нее рекомендуется использовать командуmagick
, которая объединяет в себе функциональность нескольких инструментов, предоставляя более стабильное и предсказуемое поведение.
Решения
1. Использование команды magick
Попробуйте выполнить ту же команду, но уже через magick
:
magick convert -quality 70 input.jpg test.webp
Это может помочь установить уровень качества в формате WebP, если проблема заключается в парсинге командной строки старой версии convert
.
2. Альтернативные инструменты
Если проблема все еще сохраняется, вы можете рассмотреть возможность использования GraphicsMagick, которая является продолжением ImageMagick и обеспечивает более высокую скорость обработки, отличающаяся эффективностью и меньшей предрасположенностью к багам. Установить его можно с помощью команды:
sudo apt install graphicsmagick
После установки можно выполнить конвертацию с использованием gm convert
:
gm convert -quality 70 large_input_image.jpeg out.webp
Этот вариант часто показывает лучшие результаты в плане распределения качества и размера получаемого изображения.
Заключение
Если предложенные решения не помогают, рекомендуется обратиться в поддержку Mint с описанием проблемы, ведь это может быть признаком более серьезной дефекты в последней версии пакета ImageMagick. Фиксация таких ошибок важна для улучшения качества программного обеспечения. Совершая переход на более стабильные и активно развивающиеся инструменты, такие как GraphicsMagick, вы можете существенно улучшить рабочий процесс без потери функциональности.
Таким образом, следуя вышеописанным шагам, вы сможете эффективно управлять конвертацией изображений и поддерживать необходимый уровень качества в своих проектах.