Skip to content

DevToolz ​

0.4.3 ​

2026-10-09

  • Изменено: в интерфейсе у Convert появился переключатель Resize the images, по умолчанию выключенный. Пока он не включён, изображения только конвертируются в выбранный формат, а поля размера скрыты (запуск без размеров никогда ничего не уменьшает; см. Методы задания размера); раньше с самого начала был подставлен список ширин (800, 1600), и каждое изображение уменьшалось дважды.
  • Изменено: в интерфейсе Image Hash по умолчанию отмечены hazehash и доминирующий цвет; blurhash и thumbhash выключены.
  • Добавлено: --no-resize отключает размеры сохранённой конфигурации на один запуск.

0.4.2 ​

2026-10-08

  • Новое: devtoolz ui запускает локальный веб-интерфейс и открывает его в браузере. Он входит в пакет и слушает только 127.0.0.1, под одноразовым токеном в напечатанном адресе; запросы с чужим Host или Origin отклоняются. Настраивается флагами --port, --host, --no-open, --token и --cwd. См. Веб-интерфейс.
  • Новое: Code checks выполняет одиннадцать проверок (мёртвые экспорты, пустые catch, тесты-сироты, регистр импортов, циклические импорты, TODO-комментарии, устаревшие @ts-ignore, неиспользуемые зависимости, пути в package.json, примеры в README, npm-скрипты в документации) на любой выбранной папке. Обзор запускает их все и показывает карточку для каждой. Находки сгруппированы по файлам, фильтруются и открываются рядом с кодом: с подсветкой синтаксиса, выделенной строкой и ссылкой на редактор. Циклы импорта можно показать и графом.
  • Новое: Code cleanup удаляет комментарии или вызовы console с предварительным просмотром: сканирование перечисляет файлы и показывает настоящий diff для каждого, по умолчанию ничего не выбрано, а меняются только отмеченные файлы, после подтверждения. Файл, изменившийся после сканирования, пропускается. Оригиналы сначала копируются за пределы проекта, и очистку можно откатить.
  • Новое: Image Hash в интерфейсе — папки выбираются в файловом браузере с миниатюрами, сразу видно, сколько в них изображений, отмечаются плейсхолдеры, а результат — галерея, где каждое изображение стоит рядом с плейсхолдерами, декодированными из его хешей, с выводом, который можно скопировать, скачать или записать в файл.
  • Новое: Image Batch в интерфейсе — конвертация быстрыми настройками или сохранённой конфигурацией с предпросмотром плана, прогрессом и миниатюрами «было → стало»; редактор конфигураций формой с вкладкой JSON и проверкой на лету; пресеты резкости с предпросмотром, который сравнивает изображение до и после; бэкапы замещённых оригиналов с восстановлением.
  • Изменено: image-batch принимает рамку --size как переопределение запуска в программном API, а каждый результат запуска теперь содержит абсолютные пути источника и результата.

0.4.1 ​

2026-10-08

  • Новое: sharpen добавляет выходную резкость после изменения размера в манере Lightroom: for (screen, matte или glossy) и amount (low, standard или high) выбирают значения из таблицы, а тонкие настройки radius, flat, jagged и threshold заменяют любое из них. Каждая проверяется по диапазону, который принимает sharp, а неверное значение сообщается с названием поля и диапазоном до начала записи. Рецепт, в котором sharpen не указан, резкостью не обрабатывается. См. Резкость.
  • Новое: image-batch sharpen сохраняет пресеты резкости и управляет ими (sharpen new|list|show|rm; без подкоманды терминал открывает список, где пресет можно показать, изменить, скопировать или удалить). Пресет используется по имени: "sharpen": "web-crisp" или { "preset": "web-crisp", "amount": "high" } в конфигурации, --sharpen web-crisp в командной строке. Пресеты лежат в .devtoolz/image-batch/sharpen/ проекта или в ~/.devtoolz/image-batch/sharpen/ для всех проектов. Шесть встроенных пресетов (web-light, web-crisp, web-detail, thumbnail, print-matte, print-glossy) работают без создания чего-либо. См. Пресеты резкости.
  • Новое: флаги --sharpen, --sharpen-for, --sharpen-amount, --sharpen-radius, --sharpen-flat, --sharpen-jagged и --sharpen-threshold у image-batch, init и sharpen new. Мастер init спрашивает о резкости и предлагает сохранённые пресеты, а редактор рецептов в config выбирает пресет или собственные значения.

0.4.0 ​

2026-10-08

  • Новое: команда image-batch пакетно меняет размер, конвертирует и пережимает растровые изображения по правилам. Правила хранятся в переиспользуемой конфигурации (или во флагах); папки, откуда брать картинки, и место для результатов выбираются при каждом запуске, поэтому одна конфигурация подходит для любого проекта. Работает на той же библиотеке sharp, что и image-hash.
  • Новое: три места для результатов — -o <dir> (отдельная папка с повторением структуры исходников, --flat её убирает), --beside (рядом с каждым исходником) и --replace (поверх самих исходных файлов, каждый в своём формате: уменьшить слишком большие оригиналы или пережать их на месте). Указывается ровно одно из них.
  • Новое: --replace под защитой. Он просит подтверждение (--yes без терминала), сначала копирует оригиналы в .image-batch-backup/<дата>/ вместе с journal.json (--backup <dir>, --no-backup), заменяет файл, только если результат меньше (--no-only-if-smaller), никогда не обрабатывает один и тот же файл дважды с теми же настройками, а --dry-run показывает настоящие размеры до и после. image-batch restore <backup> возвращает оригиналы.
  • Новое: размеры через widths, heights, size с fit, scale (@2x), а также по длинной стороне (longEdge, --long), по короткой (shortEdge, --short), по площади в мегапикселях (megapixels, --megapixels) и в процентах (percent, --percent). Длинная и короткая сторона не зависят от ориентации, поэтому одна настройка подходит для галереи из альбомных и портретных кадров. matchOrientation (--match-orientation) разворачивает рамку «ширина × высота» для изображений другой ориентации. Размеры больше исходного не увеличиваются, пока withoutEnlargement не равен false.
  • Новое: maxBytes (--max-size 200KB) ограничивает размер каждого файла: качество снижается ровно настолько, насколько нужно, а файл, который не удаётся уложить в предел, не записывается, а попадает в отчёт. Работает для jpg, webp, avif, heif, jp2 и png с палитрой.
  • Новое: форматы jpg, png, webp, avif, gif, tiff, jp2 и heif с важными для каждого опциями (quality, mozjpeg, palette у png, lossless у webp, effort у avif, …), которые задаются в конфигурации или через --codec, и уровни качества low, medium, high и best, раскрывающиеся в число для каждого формата. Сжатие с потерями молча не включается, а неверная опция или значение сообщаются с подсказкой до начала записи.
  • Новое: имена файлов по шаблону — {name}, {ext}, {orig}, {dir}, {format}, {width}, {height}, {size}, {long}, {short}, {mp}, {percent}, {scale}, {index:3}, {hash}, {date} — с разумным умолчанием для каждого метода размера. Шаблон, выходящий за выходную папку, неизвестная переменная или два результата с одним именем — это ошибка до начала записи.
  • Новое: выбор файлов — -r, --include, --exclude, --files-from, glob-шаблоны, --list и -i, --select, интерактивный список, в котором снимаются отметки с ненужных файлов.
  • Новое: результаты, которые уже сделал прошлый запуск, пропускаются; для любого другого существующего файла терминал спрашивает один раз (перезаписать этот, перезаписать все, пропустить, пропустить все, выйти), а без терминала файлы пропускаются с кодом выхода 1 или решают --overwrite, --skip-existing и --no-overwrite.
  • Новое: --hazehash (--budget), --blurhash, --thumbhash и --dominant-color вместе с --emit <file> записывают манифест всего созданного с плейсхолдерами в форме манифеста плейсхолдеров vue-image-kit.
  • Новое: init создаёт конфигурацию, а config (config list|show|rm|new) показывает, правит, копирует и удаляет конфигурации. Они лежат в .devtoolz/image-batch/ проекта или в ~/.devtoolz/image-batch/ для всех проектов, а метод размера и форматы выбираются из списков.