NConvert

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

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

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

Скачать NConvert

Оценка 9.7Рекомендуем
  • Ретушь фото
  • Русский интерфейс
  • Просто для новичков
Скачать бесплатно на Windows
Лучшая альтернатива
NConvert
Оценка 8.5
  • Нет предпросмотра
  • Команды вводятся вручную
  • Большие файлы требуют ОЗУ
Скачать NConvert
Загрузка начнётся после нажатия

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

ПрограммаЛучше подходит дляГлавное ограничение
NConvertПакетной конвертации и обработки изображений из командной строки, сценариев и автоматических заданийНет визуального предпросмотра цепочки операций
ImageMagickСложных конвейеров обработки, генерации и композиции растровой графикиБольшое число параметров требует времени на освоение
GraphicsMagickСтабильных серверных сценариев пакетной обработки с компактным набором командЧасть современных возможностей и форматов зависит от сборки
XnConvertПакетной обработке через графический интерфейс с настройкой действий по шагамМенее удобен для полностью безлюдного запуска из системных сценариев
IrfanViewБыстрому просмотру и пакетному преобразованию изображений на WindowsАвтоматизация сильнее привязана к Windows и возможностям программы просмотра
FastStone Photo ResizerМассовому изменению размера, переименованию и базовой подготовке фотографийНабор операций уже, чем у специализированных командных процессоров

Для повторяемых операций без ручного интерфейса NConvert удобен сочетанием широкого чтения форматов и большого числа ключей обработки. XnConvert рациональнее, когда нужно видеть список действий и настраивать их мышью; ImageMagick стоит выбирать для особенно сложных цепочек композиции и генерации, а IrfanView и FastStone Photo Resizer — когда пакетная обработка является дополнением к обычной работе с изображениями.

Как устроена команда NConvert

Базовая команда состоит из четырёх логических частей: имени исполняемого файла, ключей преобразования, указания выходного формата и списка или маски входных файлов. Например, конструкция nconvert -out jpeg *.png просит прочитать все PNG в текущем каталоге и записать результат в JPEG. Если требуется несколько операций, их ключи добавляются в ту же команду. При пакетной обработке важно заранее определить место и схему имени результата, иначе выходные файлы могут оказаться рядом с исходными и конфликтовать с ними.

Параметр -out определяет кодировщик результата, а -o задаёт шаблон выходного имени. Символ процента в шаблоне означает имя исходного файла без необходимости перечислять каждый объект вручную. В командном файле Windows знак процента имеет служебное значение самой оболочки, поэтому его обычно удваивают. Эта мелочь часто становится причиной ситуации, когда команда работает при ручном вводе, но даёт неверное имя при запуске из BAT-файла.

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

Окно командной строки NConvert со справкой по параметрам обработки

Пакетное преобразование форматов

Главная практическая задача NConvert — массовое перекодирование. В одной команде можно перечислить отдельные файлы разных типов или задать маску, например *.tif. Выходной формат выбирается независимо от расширения исходника: это позволяет одинаково обработать смешанный набор GIF, PNG, JPEG, TIFF и других поддерживаемых изображений, если их декодирование доступно в конкретной сборке. Для контроля результата лучше явно задавать и -out, и шаблон -o, а не полагаться только на расширение.

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

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

Как не перепутать чтение и запись

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

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

Шаблоны имён и организация результата

Пакетная конвертация становится безопаснее, когда выходные изображения помещаются в отдельную папку и получают предсказуемые имена. Шаблон -o позволяет включить исходное имя, а параметр нумерации -n — построить последовательность. В официальной справке есть пример, где входная серия с числовыми номерами преобразуется в новую последовательность. Это удобно для кадров анимации, отсканированных страниц и экспортов из камеры, если требуется единообразная схема имён.

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

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

Консоль NConvert с последовательной пакетной обработкой нескольких изображений

Изменение размера и сохранение пропорций

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

NConvert поддерживает режимы, ориентированные на длинную или короткую сторону, заполнение области и изменение только при увеличении либо уменьшении. Это позволяет сформулировать задачу точнее, чем сделать 1600×1200. Например, для веб-галереи обычно нужно ограничить максимальную сторону, не увеличивая маленькие оригиналы; для квадратных превью — сначала привести изображение к размеру, достаточному для заполнения, а затем обрезать лишнее; для печати может быть важен физический размер с учётом DPI.

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

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

Обрезка, холст и автоматическое удаление полей

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

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

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

Поворот, отражение и ориентация

Для произвольного угла применяется -rotate; сглаживание при такой операции управляется флагом поворота. Для стандартных разворотов JPEG есть отдельный -jpegtrans, рассчитанный на преобразования 90, 180 и 270 градусов, а также горизонтальное и вертикальное отражение. Там, где допустима без потерь работа с JPEG-блоками, этот механизм предпочтительнее повторного декодирования и кодирования, поскольку не добавляет ещё один цикл потерь качества.

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

Опция -exif_orient позволяет задать одно из стандартных значений ориентации EXIF от 1 до 8. Она меняет метаданные, а не должна автоматически восприниматься как замена фактического преобразования пикселей. Если задача — привести коллекцию к единому физическому положению, сначала определите, где нужен реальный поворот, а где достаточно корректного тега.

Яркость, контраст, гамма и уровни

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

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

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

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

Цвет, насыщенность и преобразование каналов

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

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

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

NConvert в командной строке со списком доступных ключей

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

Для повышения резкости доступны -sharpen и -unsharp. Обычное повышение резкости проще, а нерезкая маска даёт более управляемый результат за счёт параметров усиления и масштаба воздействия. Финальную резкость логично применять после изменения размера: если сначала резко усилить исходник, а затем сильно уменьшить его, часть эффекта будет потеряна или преобразуется в мелкие артефакты.

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

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

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

Фильтры краёв и декоративные эффекты

В наборе присутствуют -eedge, -edgedetect, -edetail и -efocus. Они усиливают детали или выделяют границы и могут пригодиться для технической визуализации. Их результат сильно зависит от исходного контраста. Для фотографий такие фильтры чаще используются как специальный эффект или промежуточная маска, а не как финальная коррекция.

-emboss и -embossmore создают рельефный эффект, -oil имитирует более живописную обработку, -posterize сокращает число тоновых уровней, -solarize меняет тональные отношения, а -mosaic, -spread, -swirl и -waves выполняют геометрические или пиксельные эффекты. Наличие этих ключей полезно для автоматической генерации вариантов, однако массовая обработка особенно требует заранее выбранных числовых параметров.

-negate инвертирует цвета, что удобно для негативов, масок и служебных изображений. -sepia даёт стилизованное тонирование. Если задача — подготовить данные для машинной обработки или распознавания, предпочтительнее использовать простые детерминированные преобразования вроде grey, levels, threshold/binary и resize, а декоративные эффекты не включать без конкретной необходимости.

JPEG: качество и управление сжатием

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

-use_org_quality позволяет ориентироваться на качество исходного JPEG, когда эта информация доступна для оценки. Это может быть удобно при перекодировании без желания произвольно повышать параметр качества. Однако повторное JPEG-кодирование остаётся новым поколением сжатия; высокий числовой параметр не восстанавливает детали, уже потерянные в исходнике.

Для более тонкой настройки используются -opthuff, -dct, -smoothingf и -subsampling. Оптимизация таблиц Хаффмана влияет на способ упаковки данных, DCT-настройка — на режим вычислений кодека, smoothing добавляет сглаживание, а subsampling определяет дискретизацию цветоразностных компонент. Для обычной фотографии часто достаточно качества, но для мелкого цветного текста или интерфейсной графики субдискретизация может заметно влиять на чёткость цветных границ.

Если нужна только кратная 90 градусам перестановка JPEG или зеркальное отражение, -jpegtrans рациональнее полного перекодирования. Для без потерь доступна и специальная обрезка JPEG через -jpegcrop, но она подчиняется структуре JPEG-блоков. Перед использованием на критичных материалах надо проверить фактические границы и убедиться, что операция соответствует ожидаемому кадрированию.

Пример успешной конвертации изображения командой NConvert

PNG, GIF, TIFF и многостраничные изображения

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

GIF требует индексированной палитры. NConvert умеет ограничивать число цветов через -colors и применять дизеринг, включая -dither и -floyd. Дизеринг визуально имитирует дополнительные оттенки за счёт узора из доступных цветов, поэтому на фотографиях он может улучшить переходы, а на пиктограммах и схемах — добавить нежелательную зернистость. Тип изображения определяет, что важнее: плавность градиента или чистота однотонных областей.

TIFF используется в самых разных рабочих процессах и допускает несколько типов сжатия, цветовых представлений и многостраничность. Ключи -c, -c_bw, -c_grey и -c_rgb позволяют задавать компрессию с учётом типа данных. Не каждый метод подходит к любой глубине: например, схема для двухцветного скана и схема для полноцветной фотографии решают разные задачи. Поэтому значение следует выбирать в соответствии с содержимым и требованиями программы, которая потом будет читать TIFF.

Параметр -multi связан с созданием многостраничного результата, а -xall — с извлечением всех изображений или страниц из многокадрового файла. -page позволяет обратиться к выбранной странице. Такие ключи полезны при разборе TIFF, GIF и других контейнеров с несколькими изображениями. Перед массовым извлечением нужно продумать шаблон имён, чтобы страницы из разных исходников не получили одинаковые номера и не перезаписали друг друга.

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

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

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

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

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

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

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

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

EXIF, IPTC, XMP и другие метаданные

Метаданные можно сохранять, читать, изменять и выборочно удалять. Ключ -clean использует битовую маску: отдельные биты отвечают за комментарий, EXIF, XMP, миниатюру EXIF, IPTC, ICC и прочие маркеры. Такой механизм позволяет, например, удалить описательные метаданные, но оставить цветовой профиль, либо убрать встроенную миниатюру, не затрагивая остальные поля. Значение маски нужно рассчитывать осознанно: суммирование битов означает одновременное удаление нескольких групп.

-rmeta читает метаданные, а -rexifthumb извлекает встроенную EXIF-миниатюру. -buildexifthumb создаёт миниатюру для записи в EXIF, если рабочий процесс этого требует. Встроенная миниатюра — отдельное уменьшенное изображение; она может не совпадать с текущими пикселями после редактирования, поэтому после сильной трансформации её лучше пересоздать либо удалить.

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

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

Водяные знаки

Водяной знак задаётся группой параметров -wm*. Файл изображения указывается через -wmfile, позиция — -wmpos или -wmflag, прозрачность — -wmopacity, а размер и растягивание регулируются -wmsize и -wmstretch. В справке предусмотрено девять фиксированных положений, что удобно для однотипных кадров без вычисления координат.

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

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

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

Добавление текста

NConvert содержит параметры для наложения текста: можно задавать строку, позицию и свойства отображения. Эта возможность ориентирована на автоматические подписи, номера кадров и служебные отметки. Существенное ограничение — текстовая функция опирается на Win32 API, поэтому её нельзя считать одинаково переносимой на все поддерживаемые системы. Если один и тот же сценарий должен выполняться на разных ОС, этот участок необходимо проверять отдельно.

Текст из переменных оболочки удобно использовать для даты обработки, номера задания или имени серии. При этом кавычки становятся частью технической корректности команды: строка с пробелами должна передаваться одним аргументом. В BAT, shell и других интерпретаторах правила экранирования отличаются, поэтому переносить команду между ними буквально нельзя.

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

Camera RAW и сырые растровые данные

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

-raw_autobalance и -raw_camerabalance предлагают разные подходы к балансу белого. Первый опирается на автоматический анализ, второй — на данные камеры. -raw_autobright, -raw_gamma и -raw_brightness влияют на тональное преобразование. Результат RAW-конверсии зависит от камеры и содержимого кадра, поэтому универсальный набор чисел для всех моделей нельзя считать безопасным.

Отдельная группа параметров -ctype, -corder и -size предназначена для технического чтения сырых массивов, где нужно вручную определить тип компонент, порядок и размеры. Это не то же самое, что обычный фотографический RAW с метаданными камеры. Такой режим применяют, когда структура бинарного растра известна заранее; неверная ширина, глубина или порядок каналов дают формально прочитанное, но визуально бессмысленное изображение.

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

Ключ -dpi задаёт разрешение печати в точках на дюйм. Важно различать количество пикселей и метаданные DPI. Если изображение имеет 3000×2000 пикселей, смена одного только DPI не создаёт дополнительных деталей; она меняет интерпретацию физического размера в программах, которые учитывают эту метку. Чтобы действительно изменить число пикселей, применяется -resize.

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

Сценарии и повторяемые цепочки

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

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

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

Перезапись, ошибки и удаление исходных файлов

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

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

Ограничители -greater_than и -less_than помогают фильтровать обработку по размеру файла. Они полезны, если сценарий должен затронуть только тяжёлые исходники или, наоборот, пропустить уже оптимизированные изображения. Размер файла не эквивалентен разрешению: сильно сжатый JPEG с большим числом пикселей может весить меньше небольшого PNG, поэтому критерий нужно выбирать в соответствии с целью.

Окно NConvert с начальными параметрами справки командной строки

Справочник по основным параметрам

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

КлючПрактическое назначение
-quietуменьшает служебный вывод; полезен в автоматических заданиях, где сообщения программы не должны засорять журнал.
-infoвыводит основную информацию об изображении и помогает проверить, распознался ли входной файл до обработки.
-fullinfoпоказывает расширенные сведения о файле; удобен для диагностики характеристик изображения и метаданных.
-vвключает более подробный режим сообщений, полезный при отладке длинной пакетной команды.
-inпринудительно задаёт формат входных данных, если автоматическое определение недостаточно или файл не имеет обычного расширения.
-pageвыбирает конкретную страницу или кадр из многостраничного либо многокадрового файла.
-xallизвлекает все доступные изображения или страницы из контейнера вместо обработки только одного кадра.
-multiиспользуется при формировании многостраничного результата из последовательности входных изображений.
-org_depthстарается сохранить исходную глубину изображения, когда формат результата и выбранные операции это допускают.
-overwriteразрешает заменять уже существующий выходной файл; применять его безопаснее только после теста шаблона имён.
-ignore_errorsпродолжает пакет после ошибки отдельного файла, поэтому итоговый набор нужно сверять с журналом.
-no_auto_extотключает автоматическое добавление расширения к выходному имени и оставляет его формирование сценарию.
-ctypeзадаёт тип компонент при чтении технических сырых данных, структура которых известна заранее.
-corderопределяет порядок цветовых компонент в техническом сыром растре.
-sizeуказывает размеры сырого изображения при ручной интерпретации бинарных растровых данных.
-nуправляет нумерацией выходной последовательности и помогает строить упорядоченные серии файлов.
-oзадаёт имя либо шаблон имени результата; в пакетах используется вместе с подстановкой исходного имени.
-outвыбирает формат кодирования результата независимо от типа входного изображения.
-cзадаёт общий способ сжатия для форматов, которые поддерживают несколько вариантов компрессии.
-c_bwвыбирает сжатие для двухцветных данных в форматах, где параметры различаются по типу изображения.
-c_greyзадаёт компрессию для изображений в оттенках серого, если кодировщик поддерживает такой выбор.
-c_rgbзадаёт компрессию для полноцветных данных в форматах с несколькими методами упаковки.
-qуправляет качеством при записи форматов с потерями, прежде всего JPEG; влияет на компромисс размер/артефакты.
-use_org_qualityориентируется на оценку качества исходного JPEG при повторной записи вместо произвольного повышения параметра.
-clevelзадаёт уровень компрессии для поддерживающих его кодировщиков; более высокий уровень может требовать больше времени.
-iccвключает операции управления цветом через ICC-профили в предусмотренной параметрами цепочке.
-keep_iccсохраняет встроенный ICC-профиль при преобразовании, когда его не требуется удалять или заменять.
-icc_inуказывает профиль, описывающий цветовое пространство входных данных для цветового преобразования.
-icc_outзадаёт целевой ICC-профиль, в пространство которого должны быть пересчитаны цвета.
-icc_intentвыбирает способ цветового пересчёта из предусмотренных ICC rendering intent.
-icc_bcpуправляет компенсацией чёрной точки в цепочке ICC-преобразования.
-add_alphaдобавляет альфа-канал, необходимый для дальнейшей работы с прозрачностью.
-merge_alphaобъединяет данные изображения с альфа-компонентой по поддерживаемой программой схеме.
-set_alphaзадаёт значение прозрачности в альфа-канале.
-transparentвключает преобразование, связанное с заданием прозрачного цвета.
-transpcolorопределяет цвет, который должен рассматриваться как прозрачный при соответствующей операции.
-opthuffвключает оптимизацию таблиц Хаффмана при записи JPEG для более эффективного кодирования без изменения выбранного качества.
-dctзадаёт режим DCT для JPEG-кодирования из поддерживаемых реализацией вариантов.
-smoothingfуправляет сглаживанием JPEG-кодировщика; нужен только там, где его эффект проверен на типичных изображениях.
-subsamplingзадаёт цветовую субдискретизацию JPEG, заметную на мелких цветных границах и интерфейсной графике.
-jpegtransвыполняет специальные преобразования JPEG, включая повороты кратно 90 градусам и отражения.
-jpegcropвыполняет специализированную обрезку JPEG с учётом структуры сжатого изображения.
-comp_ratioзадаёт коэффициент компрессии для JPEG 2000 в соответствующем режиме записи.
-max_filesizeограничивает целевой размер при кодировании JPEG 2000, когда такой режим выбран.
-bgcolorзадаёт основной цвет фона, используемый операциями холста и сведением прозрачности.
-bgcolor2задаёт второй цвет фона для операций, которые используют пару цветов.
-dpiзаписывает или меняет разрешение в точках на дюйм; само по себе это не добавляет пикселей.
-keepdocsizeпомогает сохранить физический размер документа при изменении DPI за счёт согласованного пересчёта.
-keepfiledateсохраняет файловую дату при создании результата, что полезно в некоторых архивных процессах.
-cleanвыборочно удаляет группы метаданных по битовой маске: комментарии, EXIF, XMP, IPTC, ICC и другие маркеры.
-rmetaчитает метаданные изображения и используется для их проверки без отдельного графического редактора.
-rexifthumbизвлекает встроенную в EXIF миниатюру как отдельное изображение.
-buildexifthumbсоздаёт EXIF-миниатюру для результата, когда она нужна программе-потребителю.
-exif_orientзаписывает стандартное значение ориентации EXIF от 1 до 8.
-iptc_printвыводит IPTC-поля, позволяя проверить описательную информацию до массовой правки.
-iptc_clearочищает IPTC-метаданные, когда они не должны переходить в итоговый файл.
-iptc_setзадаёт значение выбранного IPTC-поля для пакетного описания изображений.
-iptc_addдобавляет значение к поддерживаемому IPTC-полю, не сводя операцию только к полной замене.
-half_resиспользует половинное разрешение при обработке Camera RAW для ускоренного получения уменьшенного результата.
-embedded_jpegизвлекает или использует встроенное JPEG-превью RAW-файла вместо полного проявления исходных сенсорных данных.
-raw_autobalanceвключает автоматический расчёт баланса белого при проявлении Camera RAW.
-raw_camerabalanceиспользует параметры баланса белого камеры при RAW-конверсии.
-raw_autobrightвключает автоматическую коррекцию яркости в RAW-процессе.
-raw_gammaзадаёт гамма-параметры для проявления RAW.
-raw_brightnessкорректирует яркость при обработке RAW до записи результата.
-wmposзадаёт координатное положение водяного знака.
-wmflagвыбирает одно из девяти фиксированных положений водяного знака по краям, углам или центру.
-wmopacityзадаёт общую непрозрачность накладываемого водяного знака.
-wmstretchуправляет растягиванием изображения водяного знака в заданной области.
-wmsizeзадаёт размер водяного знака для согласования его масштаба с результирующим кадром.
-wmfileуказывает файл водяного знака; в справке этот ключ требуется ставить после остальных параметров группы wm.
-averageприменяет усредняющий фильтр к локальному окружению пикселей.
-autocropавтоматически удаляет однотонные внешние поля, когда они распознаются как фон.
-autocontrastавтоматически растягивает или корректирует контраст по содержимому конкретного изображения.
-autodeskewавтоматически исправляет небольшой перекос там, где алгоритм может определить направление изображения.
-autolevelsавтоматически корректирует уровни по содержимому каждого кадра.
-balanceвыполняет предусмотренную программой балансировку цветовых или тональных компонент.
-binaryпереводит изображение в двухуровневое представление для схем, масок и части документных задач.
-blurприменяет размытие с параметрами, заданными для соответствующего фильтра.
-brightnessизменяет общую яркость изображения на заданную величину.
-canvasменяет размер холста, позволяя добавлять или убирать область вокруг изображения без обычного масштабирования.
-colorsограничивает число цветов и применяется при подготовке палитровых изображений.
-compareвыполняет операцию сравнения изображений в поддерживаемом программой режиме.
-contrastизменяет контраст на фиксированную величину, одинаковую для всего пакета.
-cropвырезает прямоугольную область по указанным координатам и размерам.
-ditherвключает дизеринг при сокращении палитры, чтобы визуально сгладить недостаток доступных оттенков.
-deinterвыполняет деинтерлейсинг для изображений с характерным чересстрочным артефактом.
-edetailусиливает локальные детали с помощью соответствующего фильтра.
-eedgeприменяет фильтр усиления границ.
-edgedetectвыделяет границы объектов и подходит прежде всего для технической обработки и промежуточных масок.
-efocusприменяет фильтр, ориентированный на усиление визуальной фокусировки и локальных границ.
-embossсоздаёт рельефный эффект по яркостным переходам.
-embossmoreприменяет усиленный вариант рельефного эффекта.
-equalizeвыполняет эквализацию распределения тонов для повышения различимости диапазона в подходящих изображениях.
-exposureкорректирует экспозиционную светлоту по заданному значению.
-floydиспользует дизеринг Флойда—Стейнберга при сокращении числа цветов.
-gammaменяет гамма-характеристику, позволяя осветлять или затемнять средние тона нелинейно.
-gaussприменяет гауссово размытие с указанными параметрами.
-greyпреобразует изображение в оттенки серого.
-colorizeтонирует изображение заданным цветом или параметрами цветизации.
-hlsкорректирует компоненты оттенка, светлоты и насыщенности в модели HLS.
-levelsуправляет уровнями яркости и полезен для переназначения тонового диапазона.
-levels2предоставляет дополнительный вариант коррекции уровней с предусмотренным справкой набором параметров.
-maximumзаменяет локальный результат максимальным значением в заданной окрестности.
-medianbприменяет медианный фильтр одного из поддерживаемых типов.
-mediancприменяет альтернативный вариант медианной фильтрации.
-minimumзаменяет локальный результат минимальным значением в заданной окрестности.
-mosaicсоздаёт мозаичное укрупнение элементов изображения.
-negateинвертирует значения цвета и яркости, создавая негативное представление.
-noise reduceподавляет шум фильтром, предусмотренным этой командой.
-normalizeнормализует тоновый диапазон изображения.
-oilприменяет стилизацию с эффектом масляной живописи.
-posterizeсокращает число тоновых уровней, создавая постеризационный эффект.
-ratioпомогает сохранять соотношение сторон при изменении размера.
-replaceзаменяет указанный цвет другим по базовому правилу.
-replace_exвыполняет расширенную замену цвета с дополнительными параметрами сопоставления.
-rtypeвыбирает алгоритм ресэмплинга для изменения размера: от быстрых до Lanczos и других фильтров.
-rflagзадаёт условия изменения размера, включая ограничение увеличения или уменьшения и учёт ориентации.
-resizeменяет пиксельные размеры изображения; может использоваться вместе с ratio, rtype и режимами заполнения.
-rotateповорачивает изображение на заданный угол.
-rotate_flagуправляет дополнительными свойствами поворота, включая сглаживание.
-saturationувеличивает или уменьшает насыщенность цветов.
-sepiaприменяет сепийное тонирование.
-sharpenусиливает резкость изображения.
-shearвыполняет сдвиговую геометрическую трансформацию.
-sliceделит изображение на части по заданной схеме.
-softenсмягчает изображение отдельным фильтром.
-solarizeприменяет эффект соляризации.
-spreadслучайным образом смещает пиксели в пределах заданного эффекта рассеивания.
-swapменяет местами цветовые компоненты по заданному правилу.
-swirlзакручивает изображение вокруг центра на заданную величину.
-temperatureменяет цветовую температуру изображения.
-truecolorsпереводит палитровое изображение в полноцветное представление перед дальнейшими операциями.
-unsharpприменяет нерезкую маску для более управляемого повышения локального контраста.
-wavesсоздаёт волнообразное геометрическое искажение.
-Dудаляет исходный файл в предусмотренном режиме; использовать этот ключ следует только при наличии резервной копии.

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

Пакетная конвертация HEIC в JPEG с выводом NConvert в командной строке

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

Для публикации большого архива задача обычно сводится к четырём решениям: максимальный размер, формат, качество и политика метаданных. Сначала отберите тестовую папку, где есть вертикальные и горизонтальные кадры, детали с мелкой текстурой, изображения с прозрачностью и несколько файлов с EXIF. Затем ограничьте размер через -resize с сохранением пропорций, выберите алгоритм -rtype, задайте JPEG или другой нужный формат и только после этого подбирайте качество.

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

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

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

Практический сценарий: нормализация сканов

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

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

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

Практический сценарий: извлечение страниц и кадров

Многостраничный TIFF или другой многокадровый файл можно разобрать с помощью -xall либо обработать выбранную страницу через -page. Главная организационная задача здесь — уникальные имена. Если десять исходных файлов содержат по пять страниц, простая нумерация только по номеру страницы создаст повторяющиеся имена. Шаблон должен включать исходное имя и номер кадра либо обработка должна выполняться в отдельных каталогах.

Обратная задача — собрать последовательность в многостраничный результат — использует -multi. Перед сборкой проверьте порядок входного списка: лексикографическая сортировка имён вроде 1, 2, 10 может отличаться от ожидаемой числовой. Надёжнее заранее использовать нули в номерах или сформировать список в нужной последовательности внешним сценарием.

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

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

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

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

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

Практический сценарий: очистка метаданных перед передачей файлов

Когда нужно удалить лишние сведения, сначала определите, какие группы должны исчезнуть. Маска -clean позволяет независимо учитывать комментарий, EXIF, XMP, EXIF-миниатюру, IPTC, ICC и другие маркеры. Это точнее, чем безусловная очистка всего. Например, можно удалить описательные данные и миниатюру, но оставить профиль цвета, если он нужен для правильного отображения.

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

При последующем изменении IPTC сначала решите, поле должно быть заменено или дополнено. Для этого существуют отдельные -iptc_set и -iptc_add. Строки с пробелами передавайте в кавычках по правилам используемой оболочки. Если значение формируется автоматически из переменной, протестируйте символы кириллицы, кавычки и знаки, которые оболочка считает управляющими.

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

Если JPEG нужно только повернуть кратно 90 градусам, отразить или выполнить поддерживаемую без потерь обрезку, сначала рассмотрите -jpegtrans и -jpegcrop. Обычный путь через декодирование, поворот и новую запись JPEG добавит новое поколение потерь. Специализированная JPEG-трансформация сохраняет сжатые данные в пределах допустимых операций и потому лучше соответствует такой задаче.

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

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

Типичные ошибки и способы их найти

СимптомВероятная причинаЧто проверить
Файл не читаетсяФормат не распознан, повреждён или требует дополнительного декодераЗапустите информационный режим на одном файле, проверьте расширение и попробуйте другой образец того же формата.
Результат не создаётсяНеверный выходной формат, путь или имяУпростите команду до одного входа и -out, затем добавьте явный -o и только после успеха возвращайте фильтры.
Файлы перезаписываютсяНесколько входов формируют одинаковое выходное имяДобавьте исходное имя или нумерацию в шаблон; временно уберите -overwrite.
В BAT неправильное имяОдиночный знак процента интерпретирует командный файл WindowsУдвойте процент в шаблоне там, где этого требует синтаксис BAT.
Изображение растянутоЖёстко заданы обе стороны без сохранения пропорцийИспользуйте ratio или режим по длинной/короткой стороне и проверьте портретный кадр.
Маленькие картинки увеличилисьResize применяется без ограничения направленияВключите флаг, запрещающий увеличение, если цель — только уменьшать крупные изображения.
После поворота кадр снова развёрнутПиксели повернуты, но EXIF Orientation остался несовместимымСогласуйте физический поворот и значение ориентации, затем проверьте в нескольких просмотрщиках.
Прозрачность стала фономРезультат записан в формат без альфа-каналаСохраните PNG/другой формат с прозрачностью либо заранее задайте цвет сведения для JPEG.
По краям удалённого фона ореолПолупрозрачные пиксели сохраняют оттенок прежнего фонаПроверьте антиалиасинг и исходный альфа-канал; не рассчитывайте только на точное совпадение одного цвета.
Цвета заметно изменилисьНеверно назначен или преобразован ICC-профильРазличайте присвоение профиля и пересчёт цветов; проверьте профиль входа и целевой профиль.
Автоконтраст портит часть серииКаждый кадр анализируется независимоДля единообразной предметной серии замените автоматическую коррекцию фиксированными параметрами.
После уменьшения слишком сильные ореолыНеудачная комбинация ресэмплинга и резкостиСначала выберите rtype, затем применяйте умеренную финальную резкость после resize.
GIF выглядит зернистоПалитра сокращена с заметным дизерингомСравните число цветов и режим дизеринга; для схем попробуйте более чистую палитру без лишнего рассеивания.
Многостраничный экспорт теряет страницыОбработан только один кадр файлаПроверьте -page и -xall, а при сборке — -multi.
Страницы получили одинаковые именаШаблон не содержит идентификатор исходника и кадраДобавьте исходное имя и нумерацию либо разделяйте результаты по каталогам.
Водяной знак игнорирует настройки-wmfile расположен раньше остальных параметров wmПеренесите указание файла после позиции, прозрачности и размера.
Текстовая команда не переносится на другую ОСФункция добавления текста зависит от Win32 APIНе считать текстовый этап кроссплатформенным; заменить его подготовленным графическим слоем или отдельным инструментом.
Сценарий разбирается странноВ определении использованы лишние последовательности пробеловУберите декоративное выравнивание, оставьте простой синтаксис и повторно проверьте файл сценария.
Обработка огромного изображения завершается ошибкойНедостаточно памяти для декодирования и промежуточных буферовУменьшите размер стадии, число одновременных процессов или используйте систему с большим доступным объёмом памяти.
Пакет завершился, но файлов меньше-ignore_errors позволил пропустить проблемные входыПросмотрите журнал и сравните список входов с результатами; не считайте завершение процесса доказательством полной обработки.
После очистки исчез правильный цветВ маску удаления попал ICC-профильПересчитайте битовую маску -clean и удаляйте только действительно ненужные группы.
RAW выглядит иначе, чем в фоторедактореИспользованы другие параметры проявления и баланса белогоПроверьте camerabalance/autobalance, гамму, яркость и то, не выбран ли embedded JPEG.

Память и скорость на больших пакетах

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

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

Скорость также зависит от выбранного фильтра resize и компрессии. Быстрый ресэмплинг и умеренная компрессия способны заметно ускорить создание служебных превью; для мастер-копий можно выбрать более качественный алгоритм и позволить процессу работать дольше. Разделение профилей обработки по назначению лучше попытки использовать один максимально тяжёлый набор параметров для всего.

Совместимость и различия между системами

NConvert доступен для Windows, macOS и Linux, а также имеет сборки для ряда других систем. Основная логика командной строки и обработки изображений переносима, но отдельные функции и поддержка редких форматов могут различаться. Это особенно важно для операций, которые зависят от системного API или внешних библиотек. Сценарий, подготовленный на одной системе, следует проверять на целевой системе, а не только копировать команду.

Функция добавления текста является известным примером зависимости от Win32. Некоторые экзотические форматы также могут требовать дополнительных DLL и быть доступны только в Win32-среде. Если автоматизация должна одинаково работать на Windows и Linux, сначала составьте минимальный общий набор операций и форматов, а специфические этапы вынесите в отдельные ветви сценария.

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

Что NConvert не заменяет

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

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

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

Как проверять новую команду перед массовым запуском

  1. Скопируйте несколько репрезентативных исходников в отдельную тестовую папку: крупный и маленький файл, разные ориентации, прозрачное изображение и файл с важными метаданными.
  2. Начните с чтения одного файла и выбранного -out. Убедитесь, что NConvert распознаёт входной файл и создаёт ожидаемый тип результата.
  3. Задайте выходную папку или шаблон имени, исключающий совпадение с оригиналом. Не включайте перезапись на первом тесте.
  4. Добавляйте операции последовательно: геометрия, цвет, метаданные, водяной знак, финальное кодирование. После каждой существенной стадии проверяйте один результат.
  5. Откройте готовые изображения обычным просмотрщиком и сравните размеры, ориентацию, прозрачность, цвет и артефакты сжатия.
  6. Прочитайте метаданные результата, если сценарий должен их сохранить, изменить или удалить. Отдельно проверьте ICC и EXIF Orientation.
  7. Запустите тест на маске из нескольких файлов и сравните количество результатов с количеством входов.
  8. Только после этого добавляйте -overwrite, -quiet или -ignore_errors, если они действительно нужны автоматизации.
  9. Ключ удаления исходника не используйте как часть обычного теста. Очистку исходной папки лучше выполнять после независимой проверки результатов и резервной копии.

Как выбрать NConvert для конкретной задачи

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

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

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

Итоговая памятка

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

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

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