Перейти к содержимому
Главная страница

NConvert: пакетная конвертация и обработка изображений

NConvert

NConvert решает задачи массовой конвертации и обработки изображений из командной строки: меняет формат, размер и геометрию файлов, корректирует цвет, применяет фильтры, добавляет водяные знаки, работает с метаданными и автоматизирует повторяющиеся операции над целыми каталогами. Утилита особенно полезна администраторам, разработчикам, контент-менеджерам и фотографам, которым важны сценарии без ручного открытия каждого кадра: один заранее проверенный набор параметров можно запускать из BAT-, PowerShell- или shell-скрипта, планировщика задач и других средств автоматизации.

Варианты загрузок
  • Пакетная обработка фотографий
  • Ретушь и удаление объектов
  • Замена фона и портретная коррекция
NConvert
  • Нет графического интерфейса
  • Команды требуют освоения синтаксиса
  • Коммерческое использование платное

Содержание:

Что именно делает NConvert

NConvert — не интерактивный фоторедактор, а процессор изображений, которому передают входные файлы и параметры обработки. Базовая схема команды выглядит как nconvert [параметры] файлы. В параметрах задаются формат вывода, преобразования и имя результата, а в конце перечисляются один или несколько исходников. Это принципиально важная модель: вместо последовательности кликов пользователь описывает весь конвейер одной строкой и затем может воспроизводить его без изменений.

По официальному описанию NConvert читает более 500 форматов и умеет записывать примерно в 70 форматов. Такой разрыв между чтением и записью нормален: большое число старых, специализированных и служебных форматов требуется прежде всего для импорта и миграции, но не имеет практического смысла как современный целевой формат. Поэтому перед массовой обработкой редкого типа файлов полезно не только убедиться, что он распознаётся, но и проверить, доступен ли нужный кодировщик в конкретной сборке.

Набор команд охватывает несколько классов задач. К первому относятся преобразования формата и управление кодированием: JPEG, PNG, TIFF, WebP, JPEG 2000 и другие поддерживаемые цели имеют собственные параметры качества или сжатия. Ко второму — геометрия: изменение размера, обрезка, поворот, отражение, изменение холста и автоматическая обрезка полей. Третий класс — тональная и цветовая коррекция, включая яркость, контраст, гамму, экспозицию, уровни, насыщенность и цветовой баланс. Четвёртый — фильтры и эффекты: размытие, повышение резкости, медианные операции, нормализация, тиснение и другие преобразования. Отдельно стоят метаданные, цветовые профили, водяные знаки, многостраничные файлы и RAW.

У NConvert нет привычной панели предпросмотра. Поэтому безопасная работа строится иначе: сначала команда проверяется на копии одного-двух файлов, затем результат открывается в обычном просмотрщике, и только после этого маска расширяется на каталог. Этот порядок особенно важен для команд, меняющих формат с потерями, перезаписывающих существующие файлы или удаляющих метаданные.

Установка и начало работы

Как организовать рабочую папку

На Windows NConvert можно запускать непосредственно из каталога, где находится исполняемый файл, либо добавить этот каталог в переменную PATH. На macOS и Linux логика такая же: бинарный файл должен быть доступен оболочке по имени или его путь приходится указывать полностью. Для первых тестов проще создать отдельную структуру, например каталоги input и output, положить рядом несколько копий изображений и выполнять команды из папки NConvert. Так легче видеть, какие файлы появились и не произошло ли нежелательное совпадение имён.

Первой диагностической командой должна быть встроенная справка:

nconvert -help

Она показывает параметры именно той сборки, которая установлена на компьютере. Это важнее любого стороннего списка опций: поддержка некоторых форматов и библиотек зависит от платформы и комплектации. Если справка слишком длинная, её можно перенаправить в текстовый файл средствами оболочки и искать по нему параметры -resize, -q, -wmfile или название нужного формата.

nconvert -help > nconvert-help.txt
Окно командной строки Windows со справкой NConvert и списком параметров обработки

Официальный скриншот NConvert как раз показывает типичный рабочий экран: окно командной строки со справкой и перечнем операций. Отсутствие отдельного GUI здесь не недостаток реализации, а основа модели использования — команды предназначены для точного повторения и встраивания в сценарии.

Первая конвертация

Минимальная команда задаёт целевой формат и исходный файл. Например, чтобы получить PNG из JPEG:

nconvert -out png photo.jpg

Для практической работы лучше сразу явно задавать имя результата. Это исключает двусмысленность и упрощает перенос команды в скрипт:

nconvert -out png -o "output/photo.png" "input/photo.jpg"

После первого запуска нужно проверить три вещи: файл действительно создан, его размеры и цвет выглядят ожидаемо, а метаданные и прозрачность сохранились или были удалены именно так, как требовалось. Конвертация между форматами — не механическая смена расширения: разные контейнеры поддерживают разные типы прозрачности, глубину цвета, профили и служебные блоки.

Почему лучше не начинать с перезаписи

Параметр -overwrite разрешает замену уже существующего результата. Он удобен в автоматическом конвейере, но при настройке создаёт риск незаметно затереть удачный предыдущий файл. Ещё более опасна опция -D, которая удаляет исходное изображение после обработки. Пока сценарий не прошёл проверку на копиях, разумнее держать вход и выход в разных каталогах и не использовать удаление оригинала. NConvert предназначен для пакетной работы, поэтому одна ошибка в шаблоне имени способна затронуть не один файл, а весь набор.

Синтаксис командной строки и порядок параметров

Общая структура команды

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

nconvert -out jpeg -q 88 -ratio -resize 1600 0 -o "output/%.jpg" "input/*.tif"

Здесь -out jpeg выбирает JPEG, -q 88 задаёт качество, -ratio сохраняет пропорции, -resize 1600 0 ограничивает ширину, а -o формирует имя результата на основе имени исходника. Нулевая вторая сторона используется в сочетании с сохранением пропорций, поэтому высота вычисляется автоматически.

Некоторые команды чувствительны к месту в строке. Наиболее известный пример — водяной знак: в справке прямо указано, что -wmfile должен идти после остальных параметров -wm.... Поэтому перестановка опций не всегда является чисто косметическим редактированием. Если команда неожиданно игнорирует настройку, сначала стоит сравнить её порядок с локальным выводом -help.

Кавычки и пробелы в путях

Пути с пробелами нужно заключать в кавычки. Это требование относится не к NConvert как таковому, а к тому, как командная оболочка разбирает аргументы. Без кавычек строка C:My Photosimage 01.jpg превратится в несколько отдельных аргументов. Безопасный вариант выглядит так:

nconvert -out png -o "D:Ready Photos%.png" "D:Source Photos*.jpg"

В shell-сценариях Linux и macOS правило то же, хотя разделитель каталогов другой. Если команда должна работать на нескольких системах, лучше не копировать её буквально, а вынести пути и маски в переменные конкретной оболочки.

Подробный и тихий режим

Для диагностики полезны -v, -info и -fullinfo. Первый режим помогает видеть ход обработки, а информационные режимы позволяют получить сведения о файле без обычного конвейера преобразования. В автоматической задаче, где консольный вывод не нужен, применяется -quiet. При этом для отладки тихий режим лучше временно убрать: сообщение об ошибке кодека или неверном параметре обычно быстрее показывает причину, чем анализ отсутствующего файла на выходе.

Выбор входных файлов и пакетная обработка

Маски файлов

Главное преимущество NConvert проявляется при обработке наборов. Вместо перечисления каждого JPEG можно использовать маску:

nconvert -out png -o "output/%.png" "input/*.jpg"

Символ * означает произвольную последовательность символов, а ? — один символ. Маски удобно применять к однородным каталогам: например, scan_*.tif затронет только сканы с нужным префиксом. Если в папке лежат рабочие файлы разных типов, узкая маска безопаснее общего *.*, потому что заранее ограничивает входной набор.

Нужно учитывать поведение командной оболочки. В Unix-подобных системах маску обычно раскрывает shell ещё до запуска программы. В Windows часть обработки шаблонов может выполнять сама программа. Для обычных масок результат выглядит одинаково, но сложные сценарии с пробелами, экранированием и вложенными каталогами лучше тестировать на целевой системе.

Список файлов через -l

Если набор нельзя удобно описать одной маской, используется -l с файлом-списком. Такой подход полезен, когда изображения находятся в разных каталогах, когда список формируется другой программой или когда аргументов настолько много, что командная строка становится неудобной. Вместо сотен имён основной вызов остаётся коротким, а состав задания хранится отдельно.

Файл-список также упрощает воспроизводимость: его можно сохранить вместе со сценарием и позже точно понять, какие исходники были обработаны. Это практичнее, чем полагаться на состояние каталога, которое к следующему запуску может измениться.

Последовательности и числовые шаблоны

NConvert умеет работать с последовательностями через -n start end step и формировать числовые части имени символом #. Встроенная справка также содержит -t start step для управления началом и шагом числового перечислителя в выходном имени. Это пригодно для кадров анимации, отсканированных страниц и наборов, где исходные имена уже образуют строгую нумерованную серию.

Пример логики: исходники frame01.pic, frame02.pic и далее можно преобразовать в серию JPEG с новым числовым шаблоном. Перед запуском важно проверить количество решёток и диапазон, иначе нумерация может не совпасть с ожидаемой длиной номера.

Шаблоны имён и каталоги вывода

Подстановка исходного имени

Параметр -o задаёт имя выходного файла. Внутри шаблона символ % означает исходное имя. Поэтому универсальная схема для пакетной конвертации выглядит так:

nconvert -out webp -q 82 -o "web/%.webp" "source/*.png"

Каждый исходный файл сохраняет базовое имя, но получает новое расширение и оказывается в каталоге web. Это один из самых удобных способов не смешивать оригиналы и результат.

Особенность BAT-файлов Windows

В интерактивном cmd.exe достаточно одного знака %. Но внутри BAT-файла Windows использует этот символ для собственных переменных, поэтому подстановку NConvert нужно записывать как %%. Иначе оболочка изменит строку до того, как её увидит программа.

nconvert -out jpeg -q 90 -o "ready%%.jpg" "source*.tif"

Это типичная причина ситуации «в командной строке работает, в BAT — нет». При переносе проверенной интерактивной команды в пакетный файл стоит специально просмотреть все проценты.

Полный путь и имя исходной папки

Справка NConvert определяет дополнительные подстановки: $ — полный путь исходного файла, $$ — имя исходной папки. Есть и подстановки на основе дат EXIF. Они полезны при построении архивных деревьев и при массовом переименовании, но требуют особенно аккуратного тестирования на копиях: абсолютные пути, двоеточия, разделители каталогов и формат даты по-разному взаимодействуют с файловыми системами и оболочками.

Если задача сводится только к смене расширения и сохранению базового имени, символ % заметно надёжнее сложного шаблона. Расширять схему стоит тогда, когда действительно нужна иерархия по датам или исходным каталогам.

Конвертация форматов без лишних преобразований

Когда достаточно -out

Для простого переноса растрового содержимого из одного контейнера в другой основным параметром служит -out. Например:

nconvert -out tiff -o "tiff/%.tif" "incoming/*.png"

NConvert декодирует исходное изображение и записывает его целевым кодировщиком. Даже если визуально картинка не меняется, служебные данные могут отличаться: профиль цвета, EXIF, IPTC, прозрачность и параметры сжатия не обязаны иметь прямой аналог в новом формате. Поэтому «ничего не менять, только формат» всё равно требует проверки результата.

Почему нельзя ориентироваться только на расширение

Некоторые форматы имеют несколько вариантов кодирования, глубины цвета и многокадровых режимов. Кроме того, поддержка зависит от конкретной сборки. Самый надёжный тест — взять репрезентативный файл, запустить конвертацию и посмотреть, не появилось ли сообщение Bad output format или другая ошибка. Если формат читается, это ещё не означает, что NConvert может в него записывать.

Редкие и внешние кодеки

Официальная документация предупреждает, что часть экзотических форматов может требовать внешних библиотек и на некоторых платформах быть недоступной. Поэтому перенос сценария с одной ОС на другую нельзя считать гарантированно прозрачным. Если рабочий процесс зависит от HEIF/HEIC, PDF, RAW определённой камеры или другого сложного формата, проверяйте именно ту сборку, которая будет выполнять автоматическое задание.

JPEG: качество, субдискретизация и операции без повторного сжатия

Качество JPEG через -q

Параметр -q управляет качеством для нескольких форматов, включая JPEG и WebP; в справке значение по умолчанию указано как 85. Практический выбор зависит от материала: для фотографий веб-назначения разумно подобрать качество визуальным сравнением на нескольких типичных кадрах, а не считать одно число универсальным. Текст, тонкие линии и сильные градиенты могут требовать других настроек, чем обычная фотография.

nconvert -out jpeg -q 88 -o "jpg/%.jpg" "source/*.png"

Повышение числа обычно увеличивает размер и уменьшает потери, но связь не линейна. Если исходник уже JPEG, повторное декодирование и кодирование создаёт новое поколение потерь. Поэтому для поворотов на 90 градусов и некоторых видов обрезки у NConvert есть отдельные JPEG-операции без обычного повторного сжатия.

Оптимизация таблиц и субдискретизация

Опция -opthuff включает оптимизацию таблицы Хаффмана JPEG. -subsampling задаёт схему цветовой субдискретизации; в справке перечислены варианты, соответствующие более сильному или более бережному сохранению цветовой детализации. Эти параметры имеет смысл фиксировать, когда важна повторяемость выходных файлов. Для обычной пакетной подготовки фотографий достаточно сначала подобрать -q, а более низкоуровневые настройки трогать после визуальной проверки.

Поворот JPEG без обычной перекодировки

Команда -jpegtrans предназначена для lossless-преобразований JPEG и поддерживает повороты на 90, 180 и 270 градусов, горизонтальное и вертикальное отражение, а также ориентацию по EXIF. Пример исправления ориентации:

nconvert -jpegtrans exif -o "oriented/%.jpg" "camera/*.jpg"

Такой путь предпочтительнее обычного -rotate, когда задача сводится только к допустимому для JPEG блочному преобразованию и требуется избежать нового цикла кодирования. Но геометрические ограничения JPEG-блоков всё равно нужно учитывать: не вся произвольная обрезка может быть выполнена без потерь.

Lossless-обрезка JPEG

Для этой цели существует -jpegcrop x y w h. В отличие от обычного -crop, операция ориентирована на JPEG без полной перекодировки. Перед массовым применением надо проверить, как выбранный прямоугольник согласуется с блоковой структурой конкретных файлов. Если точное попиксельное попадание важнее отсутствия повторного сжатия, обычная обрезка с последующим сохранением может оказаться предсказуемее.

PNG, TIFF, WebP и AVIF: параметры кодирования

PNG и уровень сжатия

У PNG качество изображения не ухудшается от повышения уровня без потерь, но меняются время кодирования и размер файла. Для этого NConvert использует -clevel; в справке значением по умолчанию указан уровень 6. Если конвейер обрабатывает много скриншотов или графики, имеет смысл отделять требования к скорости от требования к минимальному размеру. Максимальный уровень не всегда экономит достаточно байтов, чтобы оправдать более долгую обработку.

nconvert -out png -clevel 9 -o "png/%.png" "source/*.bmp"

TIFF и тип компрессии

Для TIFF параметр -c выбирает схему компрессии. Встроенная справка перечисляет RLE, LZW, LZW с предиктором, ZLIB, варианты CCITT для чёрно-белых изображений и JPEG для подходящей глубины цвета. Это важный пример, почему число параметра нельзя запоминать вне контекста: значение -c интерпретируется в зависимости от целевого формата.

Для архивных сканов с чёрно-белым содержимым рационально отдельно тестировать CCITT, а для цветных документов — LZW/ZLIB или другую схему, совместимую с принимающей системой. Если TIFF передаётся в издательское или медицинское ПО, совместимость декодера важнее минимального размера.

WebP

Для WebP применяется общий параметр -q. NConvert удобен в миграции веб-библиотеки, когда исходные PNG/JPEG нужно преобразовать в единый целевой формат и одновременно изменить размер. В одном вызове можно соединить декодирование, масштабирование и кодирование, не создавая промежуточный файл:

nconvert -ratio -resize 1920 0 -out webp -q 82 -o "web/%.webp" "originals/*.*"

Однако слишком широкая маска *.* в реальном каталоге не всегда удачна: туда могут попасть уже готовые WebP, служебные файлы и форматы, которые не нужно повторно обрабатывать. Лучше заранее ограничить вход несколькими контролируемыми наборами.

AVIF и параметры, зависящие от сборки

В справке современных веток NConvert присутствуют параметры -avif_format, -avif_speed, -avif_quant_color и -avif_quant_alpha. Они позволяют управлять цветовым форматом, скоростью кодировщика и квантованием цвета/альфа-канала. Это как раз тот случай, когда нельзя переносить команду вслепую между версиями и платформами: сначала запустите nconvert -help на целевой машине и выполните тестовый encode/decode одного файла. Для автоматизации критично не только наличие ключа, но и фактическая работоспособность связанной библиотеки.

Изменение размера: от простой ширины до разных фильтров

Сохранение пропорций

Частый сценарий — уменьшить фотографии до заданной ширины, не искажая их. Для этого используют -ratio и нулевую вторую сторону:

nconvert -ratio -resize 1600 0 -out jpeg -q 90 -o "ready/%.jpg" "source/*.jpg"

Для ограничения по высоте меняются местами размеры:

nconvert -ratio -resize 0 1200 -out jpeg -q 90 -o "ready/%.jpg" "source/*.jpg"

Если передать две ненулевые стороны без режима сохранения пропорций, изображение может быть растянуто до указанной геометрии. Поэтому параметр -ratio нужно включать осознанно, а не предполагать, что он действует всегда.

Масштабирование в процентах

NConvert принимает процентные значения, например -resize 50% 50%. Это удобно для однородных наборов, где не нужен абсолютный предел. Но процентная схема сохраняет различия исходных размеров: кадр 6000×4000 и изображение 1200×800 после уменьшения вдвое останутся сильно разными по разрешению. Для веб-каталога чаще полезнее задавать максимальную сторону.

Самая длинная и самая короткая сторона

В справке есть формы -resize longest size и -resize shortest size. Они подходят для смешанной ориентации: один и тот же сценарий можно применить к портретным и альбомным кадрам, не вычисляя, где ширина, а где высота. Например, ограничение длинной стороны удобно при подготовке фотографий к загрузке, когда все файлы должны помещаться в общий предел независимо от ориентации.

Режим fill

Форма -resize fill w h масштабирует изображение с заполнением заданного прямоугольника. Её нужно отличать от простого «вписать целиком»: при fill задача состоит в заполнении коробки, поэтому геометрия результата может потребовать последующей обрезки или вести себя иначе, чем обычное сохранение пропорций. Перед применением к каталогу из горизонтальных и вертикальных кадров стоит проверить по одному примеру каждого типа.

Фильтр ресэмплинга -rtype

NConvert предлагает несколько алгоритмов: quick, linear, Hermite, Gaussian, Bell, B-spline, Mitchell, Hanning, Lanczos и Lanczos2. Выбор влияет на характер деталей и скорость. Для обычного качественного уменьшения часто начинают с Lanczos или Mitchell и сравнивают на тонких линиях, волосах, тексте и диагоналях. quick полезен там, где важнее скорость и изображение не является финальным результатом.

Не существует фильтра, который всегда «лучше». На пиксельной графике слишком сложный ресэмплинг может создать нежелательное размытие или ореолы, а на фотографии грубый метод даст ступенчатые края. Правильная проверка — одинаково масштабировать несколько репрезентативных изображений разными -rtype и сравнить результат в 100% масштабе.

Увеличивать только маленькие или уменьшать только большие

Ключ -rflag содержит режимы incr и decr. Они позволяют ограничить изменение размера направлением: увеличивать только те изображения, которым это нужно, или уменьшать только превышающие цель. Для веб-пайплайна особенно полезен decr, потому что он помогает не растягивать маленькие картинки без необходимости.

Холст, DPI, кадрирование и поворот

Изменение холста без изменения содержимого

-canvas меняет размер холста и размещает изображение относительно одной из девяти опорных точек: верхний левый угол, центр, нижний правый и промежуточные позиции. Это пригодно для приведения товарных карточек к единому размеру, добавления полей или выравнивания изображений в общей рамке. Фоновый цвет задаётся -bgcolor, а для вариантов с альфа-каналом в справке присутствует -bgcolor2.

Важно не путать -canvas и -resize. Первый меняет область изображения, не обязан масштабировать само содержимое; второй пересчитывает пиксели. Если требуется и уменьшить фотографию, и добавить поля до квадратного размера, это две логически разные операции, которые нужно проверить в правильном порядке.

Обычная и автоматическая обрезка

-crop x y w h задаёт прямоугольник вручную. Для серий сканов с одинаковой геометрией это быстрый способ удалить края. -autocrop пытается определить однородные поля по допуску и опорному цвету или позиции. Автоматическая обрезка удобна только при стабильном фоне: на изображениях, где объект касается края и имеет близкий к фону цвет, алгоритм может отрезать полезное содержимое.

Выравнивание перекоса

В списке операций есть -autodeskew. Для сканированных документов он может сократить ручную подготовку, но автоматическая геометрия всегда должна проверяться на плохих исходниках: фотографии с рамками, сложным фоном или нетипичной границей могут быть интерпретированы неверно. Для архивного процесса безопаснее сохранить необработанный оригинал и выпускать выровненную копию.

Поворот и сглаживание

Произвольный поворот задаётся -rotate degrees, а -rotate_flag smooth включает сглаживание. При углах, отличных от кратных 90 градусам, появляются новые области холста; их вид зависит от фона. Для JPEG, если требуется ровно 90/180/270 градусов и важно избежать нового сжатия, лучше сначала рассмотреть -jpegtrans.

DPI и физический размер

Ключ -dpi задаёт разрешение в DPI, а -keepdocsize связывает изменение bitmap-размеров со старым и новым DPI. Здесь особенно важно различать два понятия: метаданные о плотности печати и реальное количество пикселей. Простая запись нового DPI не делает фотографию детальнее. Если цель — печать заданного физического размера, нужно контролировать и число пикселей, и метаданные разрешения.

Цветокоррекция и тональные операции

Яркость и контраст

NConvert позволяет менять яркость и контраст числовыми параметрами. -brightness и -contrast принимают диапазон от отрицательных до положительных значений, поэтому их удобно использовать для однородной серии кадров, снятой в одинаковых условиях. Главное ограничение очевидно: одна и та же поправка подходит только материалу с похожей экспозицией. Если в папке смешаны ночные, дневные и студийные фотографии, массовая фиксированная коррекция может исправить часть файлов и ухудшить остальные.

Для автоматического сценария лучше сначала разделить исходники по условиям съёмки или использовать умеренные значения. Консольный режим не показывает гистограмму в реальном времени, поэтому экстремальные поправки нельзя оценивать до сохранения. Проверочный мини-набор с тёмным, светлым и средним кадром позволяет быстро увидеть, не начинают ли света и тени терять детали.

Автоконтраст и автоуровни

Команды -autocontrast и -autolevels полезны для больших наборов сканов или фотографий, где требуется базовая автоматическая нормализация. Они анализируют изображение и подбирают преобразование без ручного числа. Но автоматическая операция не понимает художественный замысел: туманная сцена, низкоконтрастный портрет или фотография в контровом свете могут быть намеренно «мягкими». Поэтому автоуровни стоит применять к технически однородным материалам, а не считать универсальной заменой ручной цветокоррекции.

Гамма и экспозиция

-gamma меняет гамму и удобен для осветления или затемнения средних тонов без такого прямолинейного сдвига, как у яркости. -exposure предназначен для экспозиционной коррекции. В конвейере эти операции лучше не складывать наугад: последовательность имеет значение, а сильные изменения могут привести к клиппингу каналов. Если нужно воспроизводимое преобразование, зафиксируйте порядок параметров и не меняйте его между партиями.

Практический подход — сначала найти минимально достаточную коррекцию на нескольких образцах, затем закрепить команду в скрипте. Если после обработки приходится добавлять вторую компенсирующую команду, это сигнал, что исходный набор лучше разделить на группы.

Уровни

У NConvert есть упрощённый -levels b w и более детальный -levels2 in_low in_high gamma out_low out_high. Второй вариант позволяет описать входные и выходные диапазоны, а также гамму. Это полезно для сканированных документов, изображений со стабильным чёрным/белым уровнем и подготовленных технических кадров. Однако уровни — один из тех инструментов, где неправильные параметры необратимо отсекают полезные полутона в готовой копии, поэтому оригиналы должны оставаться отдельно.

Насыщенность, температура и цветовой баланс

-saturation управляет насыщенностью цветовых составляющих, -temperature сдвигает восприятие цветовой температуры, а -balance r g b предназначен для баланса каналов. Эти команды подходят для стандартизированных потоков, например когда серия снимков одного стенда систематически имеет холодный оттенок. Для смешанной фотоколлекции одинаковая температурная поправка редко бывает безопасной.

Если целью является перевод в чёрно-белое представление, лучше использовать специализированные режимы серого или бинаризации, а не просто снижать насыщенность: глубина, палитра и алгоритм квантования имеют значение для размера и совместимости файла.

HLS и колоризация

В перечне операций присутствуют -hls для корректировки оттенка, светлоты и насыщенности и -colorize для колоризации. Они полезны в повторяемом дизайне, когда нужно привести множество однотипных исходников к заданному стилю. Для художественной обработки без визуального предпросмотра эти команды менее удобны, чем в GUI-редакторе, зато хорошо работают в автоматизации, если значения уже известны и утверждены.

Резкость, размытие, шум и локальные фильтры

Sharpen и Unsharp Mask

-sharpen принимает процент усиления и подходит для простой пакетной резкости. Более управляемый -unsharp radius amount threshold позволяет задавать радиус, степень и порог нерезкого маскирования. В сериях фотографий резкость лучше применять после уменьшения размера, если конечная цель — веб-копия: ресэмплинг уже изменяет локальный контраст, и настройка, подобранная до масштабирования, может оказаться чрезмерной после него.

Нельзя компенсировать сильный смаз или расфокус обычным шарпингом. Консольный фильтр способен подчеркнуть границы, но не восстанавливает отсутствующие детали. Если вокруг контрастных линий появляются светлые и тёмные ореолы, параметр выбран слишком агрессивно.

Blur, Gaussian и Soften

Для размытия есть -blur, -gauss и -soften. Они решают разные практические задачи: лёгкое смягчение перед сильным уменьшением, подготовка маски, стилизация или подавление мелких деталей. Для приватизации текста и лиц такие фильтры не следует считать надёжным способом сокрытия информации: обратимость и читаемость после повышения контраста зависят от исходника. Если задача связана с удалением чувствительных данных, безопаснее полностью закрасить или удалить область в специализированном процессе.

Медианные и экстремальные фильтры

NConvert содержит -medianb, -medianc, -minimum, -maximum и -average с заданным размером окрестности. Такие фильтры особенно полезны для сканов, масок и технических изображений, где нужно убрать одиночный шум, расширить или сжать яркие области либо сгладить локальные выбросы. На обычных фотографиях большие ядра быстро уничтожают фактуру, поэтому параметры лучше подбирать на увеличенном фрагменте.

Шумоподавление и добавление шума

Команда -noise reduce предназначена для подавления шума, а -noise может добавлять разные распределения: uniform, gaussian, laplacian и poisson. Второй класс операций чаще нужен при тестировании алгоритмов, создании текстур или имитации определённого характера зерна, чем в обычной фотоподготовке. Не стоит путать добавление шума с дизерингом: дизеринг связан прежде всего с квантованием ограниченной палитры.

Normalize и Equalize

-normalize и -equalize относятся к глобальным тональным преобразованиям. Нормализация растягивает доступный диапазон, а эквализация перераспределяет тональные значения более агрессивно. На блеклых технических сканах это может быстро повысить читаемость, но на портретах и фотографиях с мягкими переходами результат способен выглядеть неестественно. В автоматическом процессе такие команды следует применять только к предсказуемому типу материала.

Специальные эффекты

В справке перечислены emboss, oil, posterize, solarize, swirl, mosaic, spread, waves и другие эффекты. Они подтверждают, что NConvert — не только конвертер форматов, но и полноценный пакетный обработчик. Однако наличие эффекта не означает, что он удобен без предпросмотра. Художественные операции разумно использовать тогда, когда параметры заранее проверены и задача повторяется на десятках или сотнях однотипных файлов.

Палитра, градации серого и дизеринг

Переход к индексированным цветам

-colors или британский вариант -colours переводит изображение в индексированную палитру с заданным числом цветов из поддерживаемого набора. Это полезно для GIF, некоторых старых форматов и технических ресурсов, где 24-битный цвет избыточен. При уменьшении палитры нужно следить за градиентами: без дизеринга на них могут появиться заметные ступени.

Bayer и Floyd-Steinberg

-dither включает Bayer-dithering для преобразований цвета и серого, а -floyd — алгоритм Floyd-Steinberg. Для GIF и других ограниченных палитр разные методы дают различную структуру шума. Упорядоченный дизеринг создаёт регулярный узор, Floyd-Steinberg распределяет ошибку и обычно выглядит менее геометрично. Выбор зависит от изображения: иконки и плоская графика реагируют иначе, чем фотографии.

Бинаризация

-binary поддерживает несколько вариантов: ordered pattern, Floyd-Steinberg, полутона под углами 45/90 градусов и режим без дизеринга. Это полезно при подготовке монохромных документов, факсимильных TIFF и специальных печатных задач. Для текста особенно важно проверить тонкие штрихи: слишком грубая бинаризация может разорвать символы или, наоборот, слить соседние элементы.

Градации серого

-grey позволяет переводить изображение в ограниченное число уровней серого. Такой режим отличается от простого обесцвечивания тем, что конечная глубина палитры явно контролируется. Для архивирования документов это может существенно уменьшить объём, но перед массовой конвертацией нужно убедиться, что остаётся достаточно уровней для полутоновых областей и печатей.

Прозрачность и альфа-канал

Индекс прозрачности и прозрачный цвет

Для GIF/PNG в справке есть -transparent и -transpcolor red green blue. Первый связан с индексом прозрачности, второй — с выбранным RGB-цветом. Такой способ характерен для задач, где конкретный цвет фона должен стать прозрачным. На фотографиях и изображениях со сглаженными краями точное совпадение цвета редко даёт аккуратный контур: вокруг объекта могут сохраниться полупрозрачные или окрашенные пиксели.

Добавление и объединение альфа-канала

-add_alpha, -set_alpha и -merge_alpha управляют альфа-каналом и прозрачным цветом. Эти операции требуют понимания исходной глубины и того, как целевой формат хранит прозрачность. JPEG, например, не имеет обычного альфа-канала, поэтому преобразование прозрачного PNG в JPEG неизбежно требует подложки. Цвет подложки следует задавать явно, если белый или чёрный фон критичен.

Текст поверх прозрачного изображения

В руководстве NConvert отдельно отмечено ограничение текстовой функции: она использует Win32 API и относится к Windows-сборкам. Кроме того, в практических обсуждениях встречались случаи, когда добавление текста на прозрачное изображение вело себя иначе, чем водяной знак. Поэтому для PNG с альфа-каналом перед массовым запуском обязательно проверяйте не только наличие надписи, но и сохранность прозрачности по краям и в полностью прозрачных областях.

Водяной знак изображением

Основные параметры

Водяной знак задаётся через -wmfile. Положение можно выбрать одной из девяти фиксированных точек через -wmflag либо указать координаты -wmpos x y. Прозрачность регулирует -wmopacity, масштаб — -wmsize, а -wmstretch растягивает изображение водяного знака.

nconvert -wmflag bottom-right -wmopacity 55 -wmsize 18 -wmfile "brand.png" -out jpeg -q 90 -o "ready/%.jpg" "source/*.jpg"

Критическая деталь синтаксиса: -wmfile должен стоять после других опций водяного знака. Если поставить его раньше, часть параметров может не примениться ожидаемым образом. Это один из немногих случаев, когда порядок лучше запомнить как правило.

Позиционирование на разных размерах

Фиксированная угловая позиция удобна для неоднородных изображений, но абсолютные координаты могут давать непредсказуемый отступ, если в партии встречаются и маленькие, и очень большие файлы. Процентный масштаб водяного знака помогает привязать его размер к изображению. Если требуется одинаковый физический размер логотипа в пикселях, наоборот, лучше подготовить готовый PNG нужного размера и не использовать растяжение.

Прозрачность самого PNG

Если файл водяного знака уже содержит альфа-канал, итоговая видимость зависит и от его собственной прозрачности, и от -wmopacity. Поэтому исходный логотип лучше хранить в понятном состоянии: например, с полной непрозрачностью нужных пикселей, а глобальную интенсивность задавать в команде. Так проще менять значение для разных проектов, не создавая несколько почти одинаковых PNG.

Порядок с изменением размера

Когда фотографию нужно сначала уменьшить, а потом поставить читаемый логотип, порядок операций имеет практическое значение. Если водяной знак наложить до сильного уменьшения, его тонкие детали тоже будут ресэмплироваться и могут потерять чёткость. Обычно логичнее сначала привести кадр к конечному размеру, затем наложить водяной знак и только после этого записать целевой формат. Конкретное поведение цепочки следует проверить на итоговом размере.

Текстовые подписи

Шрифт, цвет и положение

Для текста предусмотрены -text, -text_font, -text_color, -text_back, -text_flag и -text_pos. Также имеются поворот текста и рамка. Это позволяет автоматически наносить инвентарные номера, дату обработки, служебную подпись или короткий копирайт на серию файлов.

Размер шрифта можно задавать в пикселях, а в справке современных веток также описан процент от высоты изображения. Процентный размер удобен для смешанного разрешения: подпись сохраняет примерно одинаковую визуальную долю кадра. Пиксельный размер нужен там, где выходные размеры заранее стандартизированы.

Когда лучше не использовать текст NConvert

Текстовая функция не заменяет полноценный типографический движок. Если нужны сложные шрифтовые цепочки, перенос по словам, богатое форматирование, сложная поддержка письменностей или точный рендеринг по корпоративному макету, практичнее подготовить надпись отдельным прозрачным изображением и использовать её как водяной знак либо выбрать инструмент с более развитым текстовым движком. NConvert сильнее в повторяемости простых подписей, чем в верстке.

Метаданные: сохранить, удалить или изменить

Просмотр информации до обработки

Перед массовым удалением метаданных полезно изучить исходник через -fullinfo. Это помогает увидеть, есть ли EXIF, IPTC, XMP, встроенный ICC-профиль и другие блоки. В фотокаталоге метаданные могут содержать не только приватные GPS-координаты, но и полезную дату съёмки, ориентацию, авторство, ключевые слова и цветовой профиль. Команда «очистить всё» должна быть осознанной.

Полное удаление метаданных

-rmeta удаляет метаданные EXIF/IPTC и связанные служебные блоки. Для публикации на сайте это удобно, если политика требует минимизировать лишние данные. Но перед применением к мастер-архиву нужно учитывать последствия: потерянные дата съёмки и описание потом не восстановятся из изображения.

nconvert -rmeta -out jpeg -q 88 -o "public/%.jpg" "private/*.jpg"

Выборочная очистка JPEG

-clean value позволяет убирать определённые компоненты JPEG. Справка сопоставляет значения с комментариями, EXIF, XMP, EXIF-thumbnail, IPTC, ICC-профилем и другими маркерами. Если требуется выборочная очистка, сначала проверяйте конкретный флаг на одном файле и сравнивайте -fullinfo до и после. Не следует автоматически удалять ICC-профиль из цветокритичного изображения только ради небольшого уменьшения размера.

IPTC

Для IPTC предусмотрены -iptc_print, -iptc_clear, -iptc_set и -iptc_add. Они подходят для автоматического присвоения служебных тегов или очистки полей в издательском процессе. Названия конкретных тегов и их допустимые значения лучше брать из локальной справки и тестировать на совместимости с системой, которая затем читает эти данные.

EXIF Orientation

-exif_orient позволяет записать значение ориентации EXIF. Это не то же самое, что физически повернуть пиксели. Многие современные просмотрщики учитывают Orientation автоматически, но некоторые конвейеры ожидают уже «нормализованный» растр. Если цель — универсальная совместимость, часто удобнее физически применить ориентацию и затем привести тег в согласованное состояние.

Сохранение времени файла

-keepfiledate сохраняет дату/время исходного файла. Это полезно при архивной миграции, где файловая дата участвует в сортировке. Однако файловая дата и EXIF DateTaken — разные сущности. Если каталогизация строится по моменту съёмки, нельзя считать -keepfiledate заменой корректному EXIF.

ICC-профили и цветовое пространство

Сохранение встроенного профиля

-keep_icc сохраняет ICC-профиль исходника, а -icc включает работу с профилем. Есть отдельные параметры входного и выходного профиля, intent и компенсации чёрной точки. Это позволяет использовать NConvert в более строгом цветовом конвейере, чем простая смена формата.

Но цветоуправление требует не только правильной команды, но и корректных профилей. Назначить изображению неправильный профиль хуже, чем вообще не трогать его: числовые значения пикселей будут интерпретированы в другой системе координат цвета. Для массовой конвертации профиль должен быть выбран по назначению и проверен в цветоуправляемом приложении.

keepcspace и CMYK

-keepcspace старается сохранить исходное цветовое пространство, если это возможно, а -cmyk_space запрашивает работу в CMYK. Возможность зависит от формата и кодировщика. Веб-форматы обычно ожидают RGB-процесс, а полиграфический TIFF/JPEG может иметь иные требования. Поэтому вывод в CMYK нужно согласовывать с принимающей системой и профилем печати, а не использовать как абстрактную «профессиональную» настройку.

RAW-файлы и встроенные превью

Что NConvert делает с RAW

NConvert читает множество RAW-форматов и содержит параметры, связанные с декодированием: автоматический или камерный баланс белого, яркость, гамма, масштаб красного и синего каналов. Это делает утилиту пригодной для автоматического получения производных JPEG/TIFF из больших партий RAW, когда не требуется индивидуальная художественная проявка каждого кадра.

При этом RAW — не обычный растровый контейнер. Результат зависит от демозаики, баланса белого, тональной кривой и профиля камеры. Если изображения предназначены для финальной фотоработы, специализированный RAW-конвертер с визуальной настройкой обычно даёт больше контроля. NConvert удобнее для технических превью, каталогов, быстрой миграции и заранее стандартизированного процесса.

half_res

-half_res загружает RAW в половинном разрешении. Это может существенно снизить объём вычислений и памяти, если конечный результат всё равно будет маленьким превью. Для полноразмерного архива или детального ретуширования этот режим, очевидно, не подходит.

embedded_jpeg

-embedded_jpeg извлекает встроенный JPEG из RAW вместо полноценной проявки сенсорных данных. Такой JPEG часто уже создан камерой и может иметь другое разрешение и цветовую обработку. Зато он быстро извлекается и отлично подходит для контактных листов, предварительного отбора и индексирования. Важно не путать его с «конвертацией RAW в JPEG максимального качества».

Баланс белого и яркость

-raw_autobalance, -raw_camerabalance, -raw_autobright, -raw_gamma, -raw_brightness, -raw_redscale и -raw_bluescale позволяют стандартизировать базовую проявку. Но одинаковые параметры применяются ко всей партии. Если съёмка менялась от сцены к сцене, сначала разумно распределить файлы по условиям или использовать камерные значения как более устойчивую основу.

Многостраничные и многокадровые файлы

Выбор страницы

-page num позволяет указать конкретную страницу или изображение внутри контейнера. Это пригодно для TIFF, GIF, ICO и других многокадровых форматов. Если задача состоит в получении только первой или выбранной страницы, явный номер делает сценарий понятнее и не зависит от неявного поведения декодера.

Извлечение всех изображений

-xall извлекает все изображения из многокадрового источника. Здесь особенно важно заранее настроить уникальный шаблон результата, иначе несколько кадров будут претендовать на одно имя. Для серии удобно использовать # и при необходимости -t, чтобы получить последовательную нумерацию.

Создание многостраничного файла

-multi формирует многостраничный результат для поддерживаемых целей. В справке перечислены TIFF, DCX, LDF и PDF. Порядок входных файлов становится порядком страниц, поэтому перед запуском нужно убедиться в правильной сортировке. Лексикографическая сортировка имён page1, page10, page2 не совпадает с числовой; надёжнее заранее использовать ведущие нули: page001, page002 и так далее.

Анимация

Официальное описание указывает поддержку анимированных или многокадровых форматов, включая APNG и GIF. Однако сохранение анимации требует учитывать задержки кадров, палитру, прозрачность и возможности целевого кодировщика. Если задача критична к таймингу, после конвертации нужно проверить не только число кадров, но и длительность и порядок воспроизведения в независимом просмотрщике.

Скриптовые файлы NConvert

Когда одного вызова мало

NConvert умеет читать сценарий из текстового файла, где можно описать несколько наборов параметров и несколько групп исходников. Это полезно, если в одном запуске нужно, например, одну серию уменьшить в PNG, другую превратить в GIF с ограниченной палитрой, а третью повернуть и сохранить в BMP. В отличие от внешнего BAT-файла, такой сценарий передаётся самой утилите как единый вход.

Логика скрипта состоит из блока параметров и следующих за ним файлов. Новый блок начинает следующий набор действий. Для реального проекта стоит держать такой файл в системе контроля версий вместе с описанием назначения и тестовым набором. Тогда изменение фильтра или качества видно как обычное изменение конфигурации.

Не перегружать пробелами

В руководстве NConvert есть предупреждение: при использовании script-файла лишние множественные пробелы в строках определения могут путать парсер. Поэтому конфигурацию лучше оформлять минималистично, не пытаться выравнивать столбцы десятками пробелов и не вставлять декоративные табуляции без необходимости.

Скрипт NConvert или shell/BAT

Встроенный script-файл удобен для нескольких конверсионных блоков, но внешняя оболочка остаётся лучше, когда нужны условия, циклы, создание каталогов, журналы, резервные копии, сетевые операции или запуск других программ. На практике NConvert часто выступает одним шагом более крупного процесса: оболочка решает, какие файлы обрабатывать, а NConvert выполняет пиксельные преобразования.

Фильтрация файлов по условиям

Возраст файла

Параметр -older n позволяет обрабатывать только файлы старше заданного числа дней. Это полезно для архивных задач и планировщика, где новые файлы должны какое-то время оставаться нетронутыми. Однако «возраст» в файловой системе зависит от даты, которую видит ОС; копирование между дисками и распаковка архивов могут изменить временные атрибуты. Если бизнес-логика основана на дате съёмки, лучше использовать метаданные, а не только возраст файла.

Ограничение по ширине, высоте и размеру файла

-greater_than и -less_than позволяют отбирать изображения по ширине, высоте или размеру файла. Это удобно для правила «уменьшать только картинки шире определённого порога» или «обрабатывать только файлы тяжелее заданного размера». Такие фильтры сокращают ненужную работу и помогают избежать повторного перекодирования уже подготовленных изображений.

Но размер файла в байтах не является прямой мерой визуального качества. JPEG на 400 КБ может быть лучше или хуже JPEG на 800 КБ в зависимости от содержимого и параметров кодирования. Условие по размеру следует использовать как технический порог, а не как критерий качества.

Обработка ошибок и перезапись

ignore_errors

-ignore_errors заставляет пакет продолжать работу после ошибок. Это полезно для больших входных папок, где один повреждённый файл не должен останавливать весь процесс. Но режим имеет смысл только при наличии журнала или последующей проверки: иначе можно получить неполный набор результатов и не заметить, что часть исходников была пропущена.

overwrite

-overwrite снимает защиту от конфликта с уже существующим выходным файлом. В регулярном задании это удобно, если результат всегда должен отражать текущее состояние источника. В ручной работе безопаснее либо очищать выходной каталог намеренно, либо писать в новый каталог с датой/версией обработки. Так проще откатить ошибочный запуск.

no_auto_ext

-no_auto_ext отключает автоматическое добавление расширения. Это специализированная опция для процессов, где имя формируется внешней системой. Для обычного пользователя автоматическое расширение полезнее: оно снижает риск получить файл, содержимое которого не соответствует имени. Отключать механизм стоит только при ясной причине.

Удаление оригиналов

-D удаляет исходное изображение после успешной обработки. В производственном pipeline это может экономить место, но одновременно лишает простого отката. Без резервной копии параметр не стоит применять к единственному экземпляру фотографии. Разумный порядок — сначала несколько циклов выполнять конвертацию в отдельную папку, сверять количество файлов и только после стабилизации процесса решать, нужен ли вообще автоматический delete.

Автоматизация в Windows, Linux и macOS

BAT и PowerShell

В Windows простой сценарий можно хранить в BAT-файле, помня про удвоение %. PowerShell удобнее, когда нужны рекурсивный обход, фильтрация по дате, логирование и проверка результатов. При этом не обязательно превращать каждую операцию в PowerShell-код: NConvert остаётся отдельной командой, которой передаются уже выбранные файлы.

Для регулярного задания Windows Task Scheduler может запускать проверенный скрипт по расписанию. Важно задавать рабочую директорию явно, потому что планировщик нередко стартует процесс не из той папки, откуда команда проверялась вручную. Абсолютные пути к входу, выходу и водяному знаку уменьшают зависимость от текущего каталога.

Shell и cron

В Linux/macOS NConvert легко встраивается в shell-сценарий. Оболочка может создать каталог результата, найти файлы через find, сгруппировать их по маске и вызвать утилиту. Для запуска по расписанию используется cron или системный таймер. Как и в Windows, переменные окружения фонового задания могут отличаться от интерактивного терминала, поэтому бинарник и вспомогательные библиотеки должны быть доступны без предположений о пользовательском PATH.

Журналирование

Для автоматической обработки важно сохранять диагностический вывод и список входных файлов. Даже если NConvert пишет подтверждение успешной конвертации, внешний скрипт должен уметь обнаружить отсутствие ожидаемого результата. Полезно сравнивать количество входных и выходных файлов, фиксировать время запуска и хранить имена файлов, на которых произошли ошибки.

Повторный запуск

Хороший pipeline должен быть идемпотентным или хотя бы предсказуемым при повторном запуске. Если NConvert каждый раз повторно сжимает уже сжатый JPEG, качество постепенно ухудшится. Поэтому вход и выход следует разделять, а маска источника не должна захватывать каталог результата. Для преобразований с потерями это важнее, чем для PNG или другого без потерь.

Встраивание NConvert в другие приложения

Поскольку NConvert управляется командной строкой, его можно запускать из программ, CMS-процессов, медиаконвейеров и скриптов. Типичный сценарий: приложение получает загруженный файл, сохраняет оригинал, вызывает NConvert для создания нескольких производных размеров и затем регистрирует их в базе. Такой подход удобен тем, что параметры обработки отделены от пользовательского интерфейса самого приложения.

Но коммерческое и серверное использование нужно проверять по условиям лицензии. Официальная страница прямо разделяет бесплатное частное/образовательное использование и коммерческие лицензии, а также содержит ограничения для некоторых видов серверного или toolkit-распространения. Если NConvert становится частью продукта или корпоративного сервиса, лицензионный вопрос следует решить до внедрения.

Технически запуск внешнего процесса также требует защиты от небезопасных имён файлов. Нельзя без экранирования вставлять пользовательский путь в командную строку: символы оболочки способны изменить смысл команды. Надёжнее вызывать процесс через API, которое передаёт аргументы массивом, либо строго экранировать и валидировать пути.

Производительность без выдуманных «ускорений»

От чего реально зависит время

Скорость определяется сочетанием декодера, выбранных операций, разрешения, целевого кодировщика, скорости диска и особенностей конкретной сборки. Простая смена BMP на PNG ведёт себя иначе, чем RAW → AVIF с масштабированием и фильтром. Поэтому универсальная цифра «столько-то файлов в секунду» без описания оборудования и набора данных ничего не говорит.

Один проход лучше цепочки промежуточных файлов

Если NConvert позволяет выполнить resize, коррекцию и запись нужного формата в одной команде, обычно нет смысла сначала сохранять временный TIFF, затем повторно читать его для водяного знака и только потом делать JPEG. Один проход уменьшает дисковый ввод-вывод и число промежуточных кодирований. Для форматов с потерями это ещё и снижает риск лишнего поколения потерь.

Большие изображения и память

В руководстве прямо предупреждается, что очень большие изображения и особенно масштабирование до огромных размеров требуют много памяти и могут завершиться неудачей. Даже если исходный JPEG занимает несколько десятков мегабайт, в декодированном виде он занимает существенно больше: хранится массив пикселей, а некоторые фильтры создают дополнительные буферы. Размер файла на диске нельзя использовать как оценку требуемой RAM.

Кодировщики новых форматов

AVIF, WebP и другие современные форматы могут иметь режимы, существенно различающиеся по вычислительной цене. Параметр скорости AVIF существует именно потому, что минимизация размера и максимальная скорость — разные цели. Для поточного сервера разумно сначала выбрать приемлемое качество и задержку, а затем фиксировать эти параметры; для офлайн-архива можно позволить более медленное кодирование, если экономия места оправдана.

Параллелизм

NConvert удобно распараллеливать внешней оболочкой по независимым файлам, но бездумный запуск десятков процессов способен ухудшить ситуацию: они начинают конкурировать за RAM, кеш и диск. Оптимальное число процессов зависит от кодека и оборудования. Начинать лучше с небольшого параллелизма и измерять на реальном наборе, а не с максимального числа логических ядер.

Как измерять корректно

Если производительность действительно важна, подготовьте фиксированный тестовый набор: одинаковые входные файлы, одна команда, одинаковое местоположение дисков, очищенный или стабилизированный кеш и несколько повторов. Фиксируйте не только общее время, но и число успешных файлов и размер результата. Такой тест позволяет сравнивать собственные варианты параметров, не превращая статью в набор необоснованных обещаний.

Типичные ошибки и способы их устранения

Bad output format

Сообщение о неизвестном выходном формате означает, что указанное имя кодировщика не поддерживается или не распознано текущей сборкой. Сначала проверьте написание после -out, затем найдите формат в собственном выводе -help. Не стоит делать вывод о поддержке только по тому, что NConvert умеет открыть такой файл: список читаемых форматов заметно шире списка записываемых.

Если команда скопирована с другой ОС или старого компьютера, причина может быть в различии библиотек и плагинов. В таком случае полезнее воспроизвести минимальный тест «один файл → один формат» без resize, метаданных и других операций. Если минимальный вариант не работает, дополнительные параметры не имеют отношения к проблеме.

Файл не найден, хотя он есть

Обычно виноваты текущий каталог, кавычки или маска. Проверьте, откуда реально запущена команда, и временно замените относительный путь абсолютным. Путь с пробелами заключите в кавычки. Если используется маска, убедитесь, что оболочка действительно передаёт ожидаемые файлы, а расширение совпадает с регистром и именованием на конкретной файловой системе.

Работает вручную, но не из планировщика

Планировщик запускает процесс с другим рабочим каталогом и иногда с другим PATH. Поэтому NConvert, watermark-файл или входная папка могут «исчезнуть». Для фоновых задач используйте абсолютные пути либо явно задавайте рабочий каталог в сценарии. Также проверьте права учётной записи, под которой работает задание.

Команда работает в cmd.exe, но ломается в BAT

Первым делом проверьте символ % в -o: в BAT его нужно удваивать. Второй источник ошибок — специальные символы оболочки и кавычки. Полезно временно добавить echo перед командой или включить вывод, чтобы увидеть строку после обработки BAT-интерпретатором.

Выходной файл уже существует

NConvert может не заменить существующий файл без соответствующего разрешения. Решение зависит от задачи: удалить старый выходной каталог, изменить шаблон имени или добавить -overwrite. Последний вариант безопасен только когда вы уверены, что каталог содержит производные копии, а не оригиналы.

Получился искажённый размер

Если обе стороны переданы в -resize без сохранения пропорций, программа имеет право привести изображение к точной геометрии. Добавьте -ratio или используйте формы longest/shortest. Если требовалось заполнить рамку без полей, возможно, нужен режим fill с последующей осмысленной обрезкой.

Маленькие изображения неожиданно увеличились

Когда задан целевой размер, NConvert может масштабировать и вверх, если нет ограничения направления. Используйте -rflag decr, если задача — только уменьшать большие исходники. Это особенно важно для логотипов и старых изображений низкого разрешения, которые иначе станут крупнее, но не получат новых деталей.

Цвет после конвертации изменился

Проверьте ICC-профиль, цветовое пространство и то, как результат отображает просмотрщик. Если исходник имел профиль, а итог его потерял, одинаковые числовые RGB-значения могут выглядеть иначе. Для управляемого процесса рассмотрите -keep_icc или явное преобразование через входной и выходной профиль.

Прозрачность превратилась в фон

Убедитесь, что целевой формат вообще поддерживает альфа-канал. JPEG обычной прозрачности не хранит. При переходе в JPEG задавайте желаемый фон заранее. Для PNG проверьте, не выполнялась ли операция, которая меняет глубину или палитру, и протестируйте текст/водяной знак отдельно.

Водяной знак игнорирует часть настроек

Проверьте порядок параметров: -wmfile должен идти после других опций водяного знака. Затем упростите команду до -wmflag, -wmopacity и -wmfile без остальных эффектов. Если это работает, добавляйте параметры по одному, чтобы найти конфликт.

Слишком большой расход памяти

Смотрите не на мегабайты файла, а на пиксельные размеры и глубину. Огромный сжатый JPEG после декодирования превращается в большой массив, а фильтры требуют дополнительные буферы. Для RAW-превью можно использовать -half_res или -embedded_jpeg, если это соответствует цели. Для обычных изображений уменьшите параллелизм и не масштабируйте вверх без необходимости.

Один повреждённый файл останавливает серию

Если допустимо продолжить обработку остальных изображений, примените -ignore_errors, но обязательно соберите журнал и список неуспешных файлов. Режим не исправляет повреждение — он лишь меняет поведение партии при ошибке.

Сценарий NConvert странно разбирает строки

Уберите декоративные пробелы и табуляции, сократите определение до минимального вида, убедитесь, что новый блок параметров начинается корректно. Для сложной логики проще перенести управление во внешний shell/PowerShell, оставив NConvert только обработку изображения.

Как проверять команду перед обработкой тысяч файлов

Шаг 1. Соберите мини-набор

Выберите 5–10 файлов, которые представляют реальные крайние случаи: самый большой, самый маленький, портретный, альбомный, файл с ICC, файл с EXIF, прозрачный PNG, изображение с необычным форматом. Такой набор намного полезнее случайных пяти картинок, потому что выявляет проблемы до массового запуска.

Шаг 2. Пишите только в отдельную папку

Создайте пустой output-каталог и не включайте -D. Если сценарий ошибся в маске или имени, вы потеряете только тестовый результат. После запуска сравните число входов и выходов и откройте каждый файл независимо от NConvert.

Шаг 3. Проверяйте свойства, а не только картинку

Визуальный результат может быть правильным, но файл — технически неподходящим. Проверьте размеры в пикселях, формат, альфа-канал, число страниц/кадров, ICC и метаданные. Для JPEG посмотрите, не произошло ли нежелательное повторное сжатие; для PNG — не исчезла ли прозрачность; для TIFF — подходит ли компрессия принимающему ПО.

Шаг 4. Зафиксируйте команду

После успешного теста перенесите строку в сценарий без «улучшений по памяти». Команда, прошедшая проверку, сама становится частью спецификации процесса. Если позже меняется качество JPEG или алгоритм resize, повторите тест на том же наборе.

Шаг 5. Только затем расширяйте маску

Сначала обработайте один каталог, затем несколько. Для критичных архивов сделайте резервную копию или работайте только с производной копией дерева. Масштабирование процесса должно увеличивать число файлов, но не менять логику.

Практический сценарий: подготовка фотографий для сайта

Предположим, есть каталог полноразмерных JPEG, а на сайт нужны копии шириной не более 1920 пикселей, без ненужного EXIF, с качеством 88 и без увеличения маленьких файлов. Базовая команда может строиться вокруг -ratio, -rflag decr, -resize, -rmeta, -q и отдельной папки результата.

nconvert -ratio -rflag decr -resize 1920 0 -rmeta -out jpeg -q 88 -o "web/%.jpg" "original/*.jpg"

Перед массовым применением надо решить вопрос ICC. Если сайт и браузерный процесс должны корректно отображать профилированные фотографии, безусловное удаление всех метаданных может быть слишком грубым: стоит сохранить ICC или выполнить явное преобразование в согласованное цветовое пространство. Публичная приватность и цветоуправление — разные требования, их нельзя объединять одним словом «очистка».

Вторая проверка — ориентация. Если камера хранит поворот только в EXIF, удаление EXIF до физической нормализации может привести к лежащему на боку изображению в системах, которые больше не знают исходную ориентацию. Поэтому для такого архива сначала применяют корректную ориентацию, затем решают, какие метаданные оставить.

Практический сценарий: WebP-копии из PNG и JPEG

Для медиатеки сайта часто нужно оставить оригиналы как есть и рядом получить WebP. Оптимальная схема — два независимых прохода или заранее сформированный список, чтобы не захватить лишние форматы. В каждом проходе можно одновременно ограничить длинную сторону.

nconvert -resize longest 1600 -rflag decr -out webp -q 82 -o "webp/%.webp" "photos/*.jpg"

Для PNG с прозрачностью обязательно проверьте альфа-канал. Для фотографического JPEG — характер мелких текстур и градиентов. Один показатель качества WebP может вести себя по-разному на скриншотах, иллюстрациях и фото; если контент смешанный, лучше использовать разные профили обработки по типу.

Не направляйте output обратно в исходный каталог с маской, которая захватывает WebP. Иначе повторный запуск может начать обрабатывать собственные результаты или создавать цепочки имён. Раздельные папки делают процесс однозначным.

Практический сценарий: единый размер товарных изображений

Карточки каталога часто требуют одинакового квадратного холста, но исходники имеют разные пропорции. Правильная задача состоит из двух стадий: сначала вписать или уменьшить объект с сохранением пропорций, затем расширить холст до квадрата с заданным фоном и позиционированием по центру.

Если просто выполнить -resize 1200 1200 без сохранения пропорций, товар станет шире или выше. Если выполнить только -ratio -resize 1200 1200, итоговая картинка может не стать точным квадратом. Поэтому resize и canvas выполняют разные роли.

Для белого каталожного фона задайте фон явно и проверьте, как он взаимодействует с прозрачным исходником. Если нужен прозрачный квадрат PNG, целевой формат и фон должны сохранять альфа-канал. В JPEG прозрачность всё равно будет заменена сплошным цветом.

Практический сценарий: миниатюры без увеличения

Чтобы создать превью шириной до 480 пикселей и не растягивать маленькие изображения, сочетайте -ratio, -resize и -rflag decr:

nconvert -ratio -rflag decr -resize 480 0 -out jpeg -q 86 -o "thumbs/%.jpg" "source/*.jpg"

Если превью создаются из PNG-иконок или схем, JPEG может быть неверным форматом из-за потери прозрачности и артефактов на тексте. В таком случае следует сохранять PNG или WebP с подходящим режимом. «Миниатюра» описывает размер, а не автоматически определяет лучший кодек.

Практический сценарий: водяной знак на готовые веб-копии

Для воспроизводимого результата полезно разделить ответственность: полноразмерные оригиналы не трогать, веб-копии сначала привести к конечной геометрии, затем наложить знак. Если логотип должен занимать одинаковый процент ширины/высоты, используйте процентный размер и фиксированную угловую позицию.

nconvert -ratio -rflag decr -resize 1800 0 -wmflag bottom-right -wmopacity 60 -wmsize 15 -wmfile "mark.png" -out jpeg -q 89 -o "branded/%.jpg" "source/*.jpg"

Нужно проверить хотя бы светлый и тёмный кадр: одна непрозрачность и один логотип могут хорошо читаться не везде. NConvert не анализирует смысл сцены и не ищет «свободное место», поэтому сложное интеллектуальное позиционирование потребует внешнего алгоритма или ручной подготовки.

Практический сценарий: JPEG-поворот по EXIF

Для коллекции, где пиксели физически не повёрнуты, а ориентация хранится в EXIF, можно применить lossless-трансформацию:

nconvert -jpegtrans exif -o "normalized/%.jpg" "camera/*.jpg"

После этого проверьте несколько файлов из разных камер и приложений. В идеальном workflow ориентация пикселей и тег не должны противоречить друг другу. Если затем планируется удаление EXIF, нормализацию следует выполнять раньше удаления тега, иначе информация о нужном повороте уже будет недоступна.

Практический сценарий: удалить метаданные перед публикацией

Самый простой вариант — -rmeta. Но сначала определите, что именно требуется удалить. Если задача связана с приватностью, ключевыми могут быть GPS и описательные поля. Если публикационная система использует авторство или цветовой профиль, полная очистка может убрать полезные данные.

Для JPEG с более точными требованиями используйте выборочную очистку через -clean, сверяя результат -fullinfo. Тестируйте на файле, где заведомо присутствуют все интересующие блоки. Пустой EXIF в одном образце не доказывает, что команда правильно обработает другой.

Практический сценарий: быстрые превью из RAW

Если цель — каталог с небольшими изображениями для отбора, нет необходимости каждый раз выполнять полноценную RAW-проявку. -embedded_jpeg позволяет использовать уже встроенный камерой JPEG. Это существенно меняет смысл процесса: вы не получаете данные сенсора после собственного демозаика, а извлекаете готовое превью.

Если встроенный JPEG слишком мал или отсутствует, альтернативой может быть декодирование RAW в половинном разрешении через -half_res, а затем масштабирование до нужной миниатюры. Такой подход стоит сравнить на нескольких моделях камер, потому что размер и качество встроенного превью различаются.

Практический сценарий: многостраничный TIFF из сканов

Сначала приведите имена страниц к сортируемому виду, например scan001.tif, scan002.tif, scan003.tif. Затем передавайте файлы в нужном порядке и используйте -multi с TIFF как выходом. Выбор компрессии зависит от содержимого: чёрно-белый текст и цветные страницы имеют разные оптимальные режимы.

Перед окончательной сборкой полезно проверить ориентацию и размеры каждой страницы. Многостраничный контейнер не исправляет несогласованность исходников. Если одна страница случайно имеет другое DPI или цветовое пространство, эта разница может остаться внутри документа и проявиться при печати.

Практический сценарий: конвертация только больших файлов

Для папки, где часть изображений уже оптимизирована, полезно отбирать только объекты выше порога через -greater_than по ширине, высоте или размеру. Так можно не трогать маленькие готовые изображения и уменьшить риск повторного JPEG-сжатия.

Если цель формулируется как «все фотографии шире 2400 пикселей уменьшить до 2400», условная фильтрация и -rflag decr дополняют друг друга: первое сокращает входной набор, второе защищает от увеличения. В реальном скрипте достаточно одного надёжного механизма, но их совместное тестирование помогает ясно зафиксировать намерение.

Практический сценарий: миграция архива редких форматов

Сильная сторона NConvert — широкое чтение. При миграции старого архива нельзя просто запустить одну команду на тысячи файлов и считать задачу решённой. Сначала составьте инвентаризацию расширений, затем для каждого типа выберите целевой формат и сохранность данных: слои могут быть сведены, многокадровость — потеряна, палитра — преобразована, метаданные — отброшены.

Полезно хранить исходники неизменными и создавать нормализованный архив рядом. Для фотографий целевым может быть TIFF/PNG/JPEG в зависимости от требований, для графики — PNG, для многокадровых документов — TIFF или PDF. Выбор определяется не возможностями NConvert, а требованиями к дальнейшему использованию.

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

Практический сценарий: цепочка нескольких преобразований

Одно из преимуществ консольного процессора — несколько операций можно описать в одном вызове. Например, кадр сначала уменьшается, затем слегка повышается резкость, получает watermark и записывается в WebP. Это лучше, чем сохранять промежуточный JPEG после каждого шага.

Но длинная строка быстро становится трудной для чтения. Разделяйте параметры логически в многострочном shell/BAT-сценарии и комментируйте назначение блоков средствами оболочки. Сам NConvert не выигрывает от того, что команда помещается на одну физическую строку; важнее, чтобы её мог безопасно изменить другой человек.

Как NConvert ведёт себя в производственном процессе

Разделяйте оригиналы, промежуточные и публикационные копии

Минимальная архитектура — source, work и output. Оригиналы никогда не являются целью записи. В work можно держать временные файлы или результаты проверки, а output содержит то, что передаётся дальше. Даже если промежуточная папка не нужна технически, такое разделение делает происхождение каждого файла понятным.

Фиксируйте параметры как конфигурацию

Качество JPEG, максимальный размер, метод resize, водяной знак и политика метаданных — это часть спецификации контента. Их не следует каждый раз вспоминать вручную. Храните команду или script-файл рядом с проектом, используйте понятные имена и ведите историю изменений.

Контролируйте вход

В автоматическую папку могут попасть файлы нулевого размера, незавершённые загрузки, файлы с неправильным расширением и слишком большие изображения. Внешний скрипт может проверять минимальный размер, стабильность файла по времени и допустимые расширения до запуска NConvert. Это снижает число неочевидных ошибок.

Не путайте успешный процесс и правильный результат

Команда может завершиться и создать файл, который технически не соответствует требованиям: неправильная ориентация, потерянный профиль, не тот размер или отсутствие нужной страницы. Поэтому production-проверка должна валидировать свойства выходного файла, а не только факт его существования.

Ограничения NConvert, которые важно учитывать заранее

Первое ограничение — отсутствие интерактивного предпросмотра. Для массовой автоматизации это нормально, но для подбора художественной цветокоррекции неудобно. Значения приходится сначала выбирать в другом инструменте или через цикл «команда — просмотр результата».

Второе — неодинаковая доступность кодеков на платформах и в разных сборках. Широкий список распознаваемых форматов не гарантирует, что любой из них можно записать или что связанная библиотека одинаково работает на Windows, macOS и Linux. Команда -help и реальный тест на целевой машине обязательны для редких форматов.

Третье — сложные пользовательские интерфейсные задачи NConvert не решает. Нет кисти, визуальной маски, ручного выделения объекта, слоёв в привычном редакторном смысле или интерактивной ретуши. Если нужно удалить человека с фона, локально поправить кожу или вручную подогнать маску, нужен фоторедактор.

Четвёртое — большие файлы могут потребовать много памяти. Это особенно заметно при увеличении, многоступенчатых фильтрах и RAW. Консольный характер не делает пиксельные вычисления «лёгкими» автоматически.

Пятое — коммерческое использование лицензируется отдельно. Бесплатное частное/образовательное применение не следует автоматически переносить на корпоративный сервер, продукт или коммерческий pipeline.

Когда выбрать NConvert, а когда XnConvert

NConvert и XnConvert связаны экосистемой XnSoft, но ориентированы на разные способы работы. XnConvert предоставляет графический интерфейс с вкладками Input, Actions и Output, перетаскиванием файлов, визуальной настройкой цепочки операций и сохранением пресетов. NConvert выполняет аналогичный класс пакетных задач из командной строки и удобнее там, где процесс должен стартовать без участия пользователя.

Если человек один раз в неделю вручную готовит фотографии и хочет видеть действия в интерфейсе, XnConvert обычно проще освоить. Если те же операции должны запускаться ночью, после загрузки на сервер или из системы сборки, NConvert естественнее встраивается в процесс.

Полезный промежуточный путь — сначала подобрать действия в XnConvert, а затем использовать экспорт в NConvert, который официально поддерживается в XnConvert. Такой workflow помогает визуально собрать цепочку, после чего перенести её в автоматизированную командную среду. Однако экспортированный сценарий всё равно нужно проверить: не все параметры GUI обязательно имеют точный эквивалент NConvert.

Сравнение с аналогами

NConvert логично сравнивать не только с графическими фоторедакторами, но и с другими инструментами пакетной командной обработки. Критерий выбора здесь не «у кого больше функций вообще», а какой тип задачи требуется автоматизировать.

Инструмент Сильная сторона Где возникают ограничения
NConvert Широкое чтение форматов, 80+ команд, компактные CLI-сценарии Нет GUI-предпросмотра и ручной локальной ретуши
ФотоМАСТЕР Интерактивная ретушь, замена фона, пакетная обработка фото Не ориентирован на роль универсального CLI-процессора в скриптах
ImageMagick Очень гибкие CLI-операции, композиция, рисование, работа с последовательностями Синтаксис сложных цепочек требует внимательного освоения
GraphicsMagick Единая команда gm, convert/mogrify, batch и библиотечные сценарии Набор форматов и конкретные возможности зависят от сборки
XnConvert GUI для массовой обработки и цепочек действий Для полностью безнадзорной автоматизации удобнее CLI

NConvert и ФотоМАСТЕР

ФотоМАСТЕР рассчитан на пользователя, который работает с фотографией визуально. В нём есть удаление объектов, замена и размытие фона, портретная ретушь, коррекция фигуры и лица, фильтры, локальные инструменты и пакетная обработка. Пакетный режим позволяет применять настройки к серии, менять размер и добавлять водяные знаки. Это делает ФотоМАСТЕР сильнее в задачах, где нужно сначала глазами оценить изображение и локально вмешаться.

NConvert решает другой класс проблем. Он не пытается заменить кисть, маску и интерактивную ретушь. Его преимущество — воспроизводимый запуск одной и той же команды на сотнях файлов, поддержка широкого спектра форматов и удобство в сценариях. Если задача звучит «каждую ночь брать новые TIFF, уменьшать, удалять метаданные и выдавать WebP», CLI-модель естественна. Если задача звучит «убрать объект с одного портрета и аккуратно заменить фон», нужен визуальный редактор.

У программ есть пересечение — изменение размера, цветовые коррекции, водяные знаки и пакетная обработка. Но способ управления принципиально различается. В comparison-блоке ФотоМАСТЕР уместно показывать как понятную визуальную альтернативу для ручной фотоработы, а NConvert — как инструмент автоматизации и конвертации.

NConvert и ImageMagick

ImageMagick — один из самых известных CLI-комплектов для изображений. Современная команда magick умеет конвертировать форматы, менять размер, кадрировать, рисовать, размывать, объединять изображения и строить сложные последовательности. mogrify ориентирован на массовое изменение файлов и может перезаписывать оригиналы. Система геометрии и стеков даёт очень высокую выразительность для сложного композиционного pipeline.

NConvert обычно проще воспринимается в сценариях «входной файл + линейный набор действий + целевой формат», а его официально заявленная совместимость особенно широка по числу читаемых форматов. ImageMagick, в свою очередь, предоставляет более развитую модель композиции, генерации, математических выражений и операций с несколькими изображениями внутри одной команды. Для автоматической подготовки миниатюр подойдут оба; для сложного коллажа, программного рисования и выражений ImageMagick часто предлагает более развитый язык операций.

Выбор также может зависеть от уже существующей инфраструктуры. Если в проекте используются библиотеки семейства XnSoft и редкие форматы, NConvert логично тестировать первым. Если pipeline уже основан на magick, миграция только ради обычного resize не всегда оправдана.

NConvert и GraphicsMagick

GraphicsMagick объединяет инструменты под командой gm: gm convert, gm mogrify, gm identify, gm composite, gm montage и другие. Есть отдельный режим gm batch, позволяющий выполнять последовательность команд в одном процессе и снижать издержки постоянного запуска утилиты. Также присутствует benchmark для измерения операций.

NConvert отличается более прямой специализацией на пакетной конвертации и набором собственных ключей, включая специфические опции RAW, JPEG-трансформаций, метаданных и редких форматов. GraphicsMagick удобен, когда нужен совместимый с семейством ImageMagick подход, библиотечное использование или развитые команды композиции. В обоих случаях нельзя сравнивать производительность по названию программы: результат зависит от формата, сборки, библиотек и конкретной команды.

NConvert и XnConvert

XnConvert ближе всего по происхождению и набору задач. Он умеет добавлять файлы и папки через GUI, строить цепочку из десятков действий, настраивать формат и папку вывода, сохранять пресеты. Официально заявлены более 500 читаемых форматов и примерно 70 выходных, то есть совместимость находится в том же семействе.

NConvert выигрывает именно способом запуска: строку легко положить в cron, Task Scheduler, скрипт приложения или серверный pipeline. XnConvert удобнее, когда настройку выполняет человек и ему нужен интерфейс. Наличие экспорта из XnConvert в NConvert делает эти инструменты не столько конкурентами, сколько двумя способами работать с похожим набором операций.

Лицензирование и использование в компании

NConvert предоставляется бесплатно для частного и образовательного применения, включая некоммерческие организации, но коммерческое использование требует лицензии. Это влияет не на техническую команду, а на допустимый сценарий эксплуатации. Домашний пользователь может экспериментировать с пакетными скриптами, тогда как компания должна учитывать лицензионные условия при внедрении в рабочий процесс.

На официальной странице отдельно описаны Business License и Site License, а также ограничения на распространение в роли developer toolkit и некоторые серверные сценарии. Если NConvert вызывается из коммерческого веб-приложения, продаваемого продукта или внутреннего корпоративного сервиса, нужно сверить актуальные условия с предполагаемой архитектурой.

Не следует путать «freeware для личного использования» с открытым исходным кодом. Возможность бесплатно запускать программу дома не означает права встраивать бинарник в собственный продукт и распространять его без условий.

Частые вопросы

Есть ли у NConvert графический интерфейс?

Нет, основная работа выполняется из командной строки. Для визуальной пакетной обработки в экосистеме XnSoft существует XnConvert. Это разные программы, их не нужно смешивать при поиске инструкций и скриншотов.

Можно ли обработать сразу весь каталог?

Да. Используйте маски файлов, список через -l или внешний скрипт. Для безопасной работы направляйте результат в отдельную папку и сначала проверяйте команду на небольшом наборе.

Как сохранить пропорции при изменении размера?

Добавьте -ratio и задайте одну сторону, оставив вторую нулевой, либо используйте режимы longest/shortest. Если нужно только уменьшать большие изображения, добавьте -rflag decr.

Можно ли не перекодировать JPEG при повороте?

Для кратных 90 градусам преобразований используйте -jpegtrans, включая режим ориентации по EXIF. Для lossless-обрезки есть -jpegcrop. Произвольный поворот через -rotate — другая операция и обычно требует пересчёта изображения.

Как убрать EXIF перед публикацией?

Для общего удаления метаданных есть -rmeta, а для более выборочной очистки JPEG — -clean. Перед массовым запуском проверьте -fullinfo, чтобы не удалить нужный ICC-профиль, авторство или служебные поля.

Можно ли сохранить дату файла?

Да, для этого есть -keepfiledate. Помните, что дата файла и дата съёмки в EXIF — не одно и то же.

Как добавить логотип?

Используйте параметры водяного знака: положение через -wmflag или -wmpos, прозрачность через -wmopacity, размер через -wmsize, а файл — через -wmfile. -wmfile должен идти после остальных -wm-настроек.

Можно ли добавить текст?

Да, для Windows-сборок в документации описаны -text, шрифт, цвет, фон, положение, поворот и рамка. Для других платформ поддержку нужно проверять по локальной справке, поскольку текстовая функция документирована с ограничением, связанным с Win32 API.

Как быстро получить превью из RAW?

Если достаточно камерного JPEG, используйте -embedded_jpeg. Если нужна декодированная RAW-картинка меньшего разрешения, пригодится -half_res. Это разные методы и дают разный результат.

Почему NConvert читает формат, но не хочет в него сохранять?

Количество читаемых форматов больше количества записываемых. Кроме того, кодировщик может отсутствовать в конкретной сборке. Проверьте список форматов через -help и минимальный тест.

Можно ли использовать NConvert на сервере?

Технически командная модель подходит для серверной автоматизации, но коммерческое и серверное использование должно соответствовать лицензии NConvert. Перед внедрением в продукт или сервис проверьте актуальные условия XnSoft.

Что делать, если один файл ломает большую партию?

Для продолжения обработки существует -ignore_errors. Но обязательно ведите журнал, иначе пропущенный исходник останется незамеченным.

Как узнать реальные доступные параметры моей сборки?

Запустите nconvert -help. Это главный источник для конкретной установленной версии, особенно когда речь идёт о новых форматах и платформенных библиотеках.

Итоговый рабочий подход

NConvert лучше всего раскрывается не как программа для разовой ручной правки, а как стабильный исполнитель заранее описанного процесса. Начните с одного репрезентативного файла, зафиксируйте формат вывода, геометрию, качество, политику метаданных и цветового профиля, затем проверьте крайние случаи и только после этого расширяйте обработку на каталог.

Для массового веб-контента особенно полезны -resize, -ratio, -rflag decr, -q, -rmeta/-keep_icc и шаблон -o. Для архивных задач добавляются многостраничные режимы, сохранение даты файла и контроль форматов. Для производственного конвейера ключевыми становятся отдельные вход/выход, журналирование, проверка результата и отсутствие повторного кодирования собственных выходных файлов.

Если задача требует видеть маску, ретушировать лицо, заменять фон или художественно подбирать локальную коррекцию, NConvert не заменяет визуальный фоторедактор. Если же преобразование уже формализовано и должно выполняться одинаково сотни раз, командная модель становится его главным преимуществом: параметры можно проверить один раз, сохранить в сценарии и повторять без ручного дрейфа настроек.

0 0 голоса
Рейтинг статьи

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные