NConvert пакетно преобразует изображения между сотнями форматов, меняет размер и холст, обрезает и поворачивает кадры, корректирует яркость, контраст, гамму и цвет, применяет фильтры, управляет прозрачностью, ICC-профилями и метаданными, добавляет текст и водяные знаки и выполняет эти операции по одной команде для целых наборов файлов.
Работа строится вокруг команды nconvert: после имени программы указываются параметры обработки, формат результата, схема имени выходного файла и маска исходных изображений. Такой подход удобен, когда одинаковую последовательность действий нужно без ручного открытия каждого кадра применить к десяткам, сотням или тысячам файлов.
NConvert особенно полезен для автоматизированной подготовки фотографий, иллюстраций и технической графики: он умеет читать множество растровых форматов, создавать распространённые выходные форматы, обрабатывать многостраничные документы и кадры, сохранять или удалять отдельные группы метаданных и встраиваться в командные файлы и сценарии. При этом результат зависит от явно заданных ключей, поэтому перед массовой обработкой лучше проверять команду на копии нескольких файлов.
Скачать 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 — массовое перекодирование. В одной команде можно перечислить отдельные файлы разных типов или задать маску, например *.tif. Выходной формат выбирается независимо от расширения исходника: это позволяет одинаково обработать смешанный набор GIF, PNG, JPEG, TIFF и других поддерживаемых изображений, если их декодирование доступно в конкретной сборке. Для контроля результата лучше явно задавать и -out, и шаблон -o, а не полагаться только на расширение.
При переходе между форматами нужно учитывать не только наличие кодировщика, но и свойства данных. JPEG не хранит обычный альфа-канал, палитровый GIF ограничен индексированными цветами, а TIFF может содержать несколько страниц и использовать разные способы сжатия. NConvert позволяет управлять глубиной цвета, палитрой, прозрачностью и параметрами сжатия, однако несовместимое свойство нельзя сохранить только сменой расширения. Поэтому массовое преобразование стоит рассматривать как пересборку изображения под ограничения целевого формата.
Для файлов, где важно не менять представление цвета без необходимости, пригодится -org_depth: ключ ориентирован на сохранение исходной глубины, когда это возможно. В других задачах глубину задают явно, например переводом в оттенки серого или истинный цвет. Явное управление особенно важно при работе со сканами, пиктограммами и техническими изображениями, где случайная индексация или переход к другой глубине может дать видимые ступени на градиентах.
Как не перепутать чтение и запись
У NConvert есть отдельные параметры для принудительного определения входного формата и для выбора кодировщика результата. Это разные задачи. Принудительный -in полезен в редких случаях, когда расширение отсутствует или содержимое нужно интерпретировать определённым образом. -out отвечает за то, что будет создано. Если файл нормально распознаётся автоматически, задавать -in без причины не следует: ошибочный тип на входе скорее помешает декодированию, чем поможет.
Чтобы быстро проверить, понимает ли программа конкретный файл, сначала полезно запустить информационный режим без цепочки коррекций. Получив корректные размеры, глубину и тип, можно добавлять операции по одной. Такой порядок облегчает диагностику редких форматов: если сбой возникает уже на чтении, нет смысла искать причину в фильтре резкости или параметрах JPEG.
Шаблоны имён и организация результата
Пакетная конвертация становится безопаснее, когда выходные изображения помещаются в отдельную папку и получают предсказуемые имена. Шаблон -o позволяет включить исходное имя, а параметр нумерации -n — построить последовательность. В официальной справке есть пример, где входная серия с числовыми номерами преобразуется в новую последовательность. Это удобно для кадров анимации, отсканированных страниц и экспортов из камеры, если требуется единообразная схема имён.
Опция -no_auto_ext отключает автоматическое добавление расширения. Она нужна не в обычной конвертации, а когда имя должно полностью контролироваться шаблоном или внешним сценарием. При её использовании расширение надо формировать явно в шаблоне: иначе получится файл без ожидаемого суффикса, хотя данные внутри будут корректно закодированы. Для массовых заданий это влияет на последующее распознавание другими программами.
Ключ -overwrite разрешает замену уже существующих результатов. Автоматически добавлять его во все команды не стоит. Безопасный порядок — сначала направить результат в пустую тестовую папку, проверить несколько файлов, затем включать перезапись только там, где она действительно необходима. Если же команда выполняется по расписанию, заранее продумайте, должен ли новый запуск заменять старые изображения или записывать их под новой нумерацией.
Изменение размера и сохранение пропорций
Для изменения размеров используется -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 использовать их без явной причины не следует: перестановка каналов мгновенно приводит к неправильным цветам.
Резкость, размытие, шум и локальные фильтры
Для повышения резкости доступны -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-блоков. Перед использованием на критичных материалах надо проверить фактические границы и убедиться, что операция соответствует ожидаемому кадрированию.
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 -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 | удаляет исходный файл в предусмотренном режиме; использовать этот ключ следует только при наличии резервной копии. |
Большой список параметров не означает, что их нужно использовать одновременно. Надёжная команда обычно начинается с чтения и выбора выхода, затем добавляет одну-две необходимые операции, после чего закрепляет имя результата и правила перезаписи. Чем больше независимых коррекций помещено в один вызов, тем важнее сохранять тестовые примеры и документировать порядок ключей.
Практический сценарий: веб-копии большого фотоархива
Для публикации большого архива задача обычно сводится к четырём решениям: максимальный размер, формат, качество и политика метаданных. Сначала отберите тестовую папку, где есть вертикальные и горизонтальные кадры, детали с мелкой текстурой, изображения с прозрачностью и несколько файлов с 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 рационально подключать к нему или к файловому процессу как преобразователь.
Командная строка не хранит интерактивный журнал правок. Воспроизводимость достигается иначе: сохранением команды, файла сценария и исходных материалов. Это даже выгоднее для автоматизации, потому что рецепт можно повторить на новой партии, но требует дисциплины — рабочие ключи должны быть записаны, подписаны по назначению и протестированы после изменения.
Как проверять новую команду перед массовым запуском
- Скопируйте несколько репрезентативных исходников в отдельную тестовую папку: крупный и маленький файл, разные ориентации, прозрачное изображение и файл с важными метаданными.
- Начните с чтения одного файла и выбранного
-out. Убедитесь, что NConvert распознаёт входной файл и создаёт ожидаемый тип результата. - Задайте выходную папку или шаблон имени, исключающий совпадение с оригиналом. Не включайте перезапись на первом тесте.
- Добавляйте операции последовательно: геометрия, цвет, метаданные, водяной знак, финальное кодирование. После каждой существенной стадии проверяйте один результат.
- Откройте готовые изображения обычным просмотрщиком и сравните размеры, ориентацию, прозрачность, цвет и артефакты сжатия.
- Прочитайте метаданные результата, если сценарий должен их сохранить, изменить или удалить. Отдельно проверьте ICC и EXIF Orientation.
- Запустите тест на маске из нескольких файлов и сравните количество результатов с количеством входов.
- Только после этого добавляйте
-overwrite,-quietили-ignore_errors, если они действительно нужны автоматизации. - Ключ удаления исходника не используйте как часть обычного теста. Очистку исходной папки лучше выполнять после независимой проверки результатов и резервной копии.
Как выбрать NConvert для конкретной задачи
NConvert особенно уместен, когда правила можно выразить заранее: все изображения уменьшить по длинной стороне, перевести в один формат, записать заданное качество, сохранить ICC, удалить выбранные метаданные и построить имена по шаблону. Чем меньше ручных исключений, тем выше выгода от команды, которую можно повторять без изменений.
Он также удобен как промежуточный инструмент в конвейере. Один сценарий может находить новые файлы, NConvert — преобразовывать их, а следующий этап — загружать результаты, создавать каталог или запускать анализ. Для такой схемы важны предсказуемые коды завершения, журнал сообщений, отдельная папка результата и отсутствие скрытой перезаписи.
Если задача начинается словами для каждого кадра решить глазами, командный процессор будет менее удобен. Если же она формулируется как точное правило для всей партии, NConvert позволяет превратить это правило в повторяемую операцию. На практике качество такой автоматизации определяется не длиной команды, а тем, насколько точно выбраны параметры, исключены опасные перезаписи и проверены крайние типы входных файлов.
Итоговая памятка
Сначала определите формат и свойства результата, затем геометрию, цвет и метаданные. Не меняйте размер и DPI как будто это одно и то же, не используйте JPEG для прозрачности, не удаляйте ICC без понимания цветового процесса и не включайте автоматические коррекции в однородную серию только потому, что они доступны. Для JPEG-поворотов без других правок используйте специализированные трансформации, а для сложной цепочки старайтесь выполнить финальное кодирование с потерями один раз.
Длинную команду сохраняйте как документированный сценарий. В нём важны порядок ключей, кавычки и синтаксис оболочки; для водяного знака отдельно соблюдайте положение -wmfile после параметров группы. Перед обработкой всего архива проверяйте несколько разнотипных файлов и считайте результаты, особенно если включено продолжение после ошибок.
NConvert раскрывается именно в повторяемых партиях: широкий набор декодеров и команд обработки позволяет одной процедурой привести изображения к согласованным размерам, формату, цветовым параметрам и метаданным. При аккуратном шаблоне имён, отдельной папке результата и тесте на копиях программа становится предсказуемым компонентом фотопроцесса, где каждая операция задана явно и может быть воспроизведена на следующей серии.