Обзор dcraw: возможности, ограничения и работа с RAW через командную строку

dcraw — консольный декодер необработанных фотографий, созданный Дэйвом Коффином. Программа читает файлы цифровых камер, извлекает из них пиксельные данные и служебные сведения, выполняет базовую обработку RAW и записывает результат в PGM, PPM, PAM или TIFF. У dcraw нет каталога снимков, графических регуляторов, локальных масок и проекта с историей правок. Его задача уже: получить воспроизводимый результат из поддерживаемого файла, управляя балансом белого, интерполяцией, цветовым пространством, яркостью, светами, разрядностью и несколькими видами коррекции через параметры командной строки.

Скачать dcraw бесплатно

Исходная программа

dcraw

Программа для работы с изображениями и графикой на русском языке

Оценка8.5

  • Меньше инструментов для точной локальной коррекции
  • Часть расширенных функций доступна только платно
  • Набор инструментов зависит от версии и платформы
  • Может не подойти для сложного профессионального монтажа
Скачать dcraw

Полностью бесплатно — без СМС и регистрации

Задать вопрос фотографу
Андрей Фёдоров
Как вы могли заметить, здесь есть ТОП-ы на все случаи жизни, причём, их список постоянно пополняется. Кроме того, каждый год они обновляются, ведь я включаю в рейтинги реально лучшие аппараты из всех имеющихся в текущий момент на рынке. Именно мой опыт и знания помогли создать ресурс ТОП Фотограф, который, я надеюсь, приносит вам что-то полезное.
Задать вопрос

Что представляет собой dcraw

Название продукта пишется строчными буквами — dcraw. Это программа Дэйва Коффина, а не одноимённый веб-сервис, мобильное приложение или коммерческий RAW-редактор. Исходный код написан на ANSI C и распространяется в виде файла dcraw.c. Авторская цель проекта заключалась в том, чтобы один переносимый декодер мог читать множество несовместимых между собой форматов камер на разных операционных системах.

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

RAW не является одним универсальным форматом. В камерах встречаются CRW, CR2, NEF, RAF, ORF, RW2, ARW, DNG и десятки других разновидностей. dcraw распознаёт не абстрактное расширение RAW, а конкретную структуру файла и параметры камеры. Официальная страница проекта сохраняет перечень из 731 поддерживаемой камеры и форматов, включая Adobe DNG. Этот перечень относится к состоянию исходного кода 2018 года и не обновлялся вместе с моделями, вышедшими позднее.

Историческое значение dcraw связано не только с самостоятельным использованием. Его исходный код стал технической основой и справочным материалом для многих просмотрщиков, конвертеров и библиотек. При этом сам автор оставил dcraw отдельной консольной программой, а не оформил её как библиотеку с устойчивым программным интерфейсом.

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

Параметр Состояние
Разработчик Дэйв Коффин
Тип Консольный декодер и конвертер фотографий RAW
Последняя upstream-версия 9.28, ревизия исходного кода 1.478
Дата последней upstream-ревизии 1 июня 2018 года
Текущий статус Upstream не развивается; пакеты с исправлениями продолжают собирать дистрибутивы и Homebrew
Платформы Исходный код переносим между Unix-подобными системами и Windows; готовые пакеты доступны прежде всего для Linux и macOS
Интерфейс Командная строка, без собственного графического окна
Входные данные Поддерживаемые форматы RAW конкретных камер и DNG; отдельные режимы для метаданных и встроенных миниатюр
Основной вывод PGM, PPM или PAM; TIFF включается параметром -T
Разрядность 8 бит по умолчанию, 16 бит с -6, линейные 16 бит с -4
Цветовые пространства Raw color, sRGB, Adobe RGB, Wide Gamut RGB, ProPhoto RGB, XYZ, ACES; поддержка ICC при сборке с Little CMS
Цена Плата за загрузку и использование исходного кода не требуется
Регистрация Не требуется
Интернет и облако Не требуются для обработки локальных файлов
Мобильная версия Официальных приложений для Android и iOS нет
ИИ-функции Нет

Актуальный статус и доступность в 2026 году

В исходном файле dcraw.c указаны версия 9.28, ревизия 1.478 и дата 1 июня 2018 года. Более новой upstream-версии на официальной странице нет. Это означает, что таблицы камер, особенности новых контейнеров, исправления декодеров и защита от ошибок входных данных больше не получают обновления от автора.

Одновременно dcraw не исчез из системных репозиториев. На 6 августа 2026 года Debian распространяет исходный пакет 9.28-8, Arch Linux — 9.28.0-5, Fedora 44 — 9.28.0-28, а Homebrew предлагает 9.28.0 с собственной ревизией формулы. Номер после 9.28 отражает работу сопровождающих пакета: переносимость, исправления сборки и отдельные патчи. Он не превращает программу в новую upstream-ветку и не добавляет систематическую поддержку всех современных камер.

Практическое следствие разделения upstream и downstream состоит в том, что устанавливать dcraw безопаснее из актуального репозитория своей системы, а не брать случайный старый исполняемый файл. Системный пакет получает совместимые зависимости и исправления сопровождающих. Однако даже свежая сборка остаётся основанной на RAW-декодере 2018 года.

Для архива старых камер это не всегда недостаток. Формат уже существующего CR2, NEF или RAF не меняется после снятия камеры с производства, поэтому старый проверенный декодер сохраняет воспроизводимость. Для камеры, выпущенной после остановки проекта, совместимость не покрывается upstream-кодом. Canon CR3 и семейства камер, которых нет в таблицах dcraw 9.28, требуют более нового декодера.

Платформы, установка и сборка

Linux и другие Unix-подобные системы

dcraw традиционно используется в Unix-подобной среде. В Linux его устанавливают из репозитория дистрибутива, после чего исполняемый файл вызывается из терминала или скрипта. Пакет обычно включает саму программу и man-страницу. В некоторых системах локализованные сообщения и переводы документации поставляются отдельно или зависят от параметров сборки.

Самостоятельная компиляция выполняется обычным C-компилятором. Полная сборка использует математическую библиотеку, JasPer, JPEG-библиотеку и Little CMS 2. JasPer нужен для отдельных данных JPEG 2000 и RED, libjpeg — для сжатых Kodak DC120 и Adobe Lossy DNG, Little CMS — для ICC-профилей. В исходном коде предусмотрен режим NODEPS, который отключает эти зависимости вместе с соответствующими возможностями.

Сборка без зависимостей упрощает перенос, но не равна полнофункциональной версии. При попытке открыть файл, требующий отключённой библиотеки, dcraw выводит сообщение о необходимости связать программу с libjasper или libjpeg и прекращает декодирование этого файла. ICC-профили при сборке без Little CMS также недоступны.

macOS

На macOS dcraw сохраняется в Homebrew. Формула 9.28.0 поддерживает готовые пакеты для Apple Silicon и Intel, а также собирает зависимости JasPer, JPEG Turbo и Little CMS 2. У программы нет отдельного приложения в папке Applications: после установки она запускается в Terminal или из автоматизированного процесса.

Архитектура компьютера влияет на конкретную сборку, но не на синтаксис dcraw. Команда и параметры одинаковы на Intel и Apple Silicon. Файлы остаются локальными, а обработка не требует учётной записи Apple, облачной библиотеки или доступа к Фото.

Windows

Официальная страница dcraw публикует исходный код и описывает создание самостоятельного DCRAW.EXE, но не предоставляет современный подписанный установщик для Windows. В dcraw.c присутствуют ветви для WIN32, MinGW, Cygwin и старых DOS-совместимых сред, поэтому программу можно собирать под Windows. Готовые исполняемые файлы в интернете являются сторонними сборками и отличаются набором патчей, библиотек и поддержкой длинных или Unicode-путей.

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

Русский язык

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

Как устроен интерфейс

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

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

Общая форма: dcraw [опции] [файл] [файл] …

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

Второй элемент интерфейса — диагностический вывод. Параметр -v включает подробные сообщения о загрузке, интерполяции, преобразовании цвета и записи. В режиме -i -v программа не создаёт изображение, а показывает сведения о файле: имя, время съёмки, производителя и модель, ISO, выдержку, диафрагму, фокусное расстояние, наличие встроенного ICC-профиля, число RAW-кадров, размеры, фильтр и множители баланса белого.

Третий элемент — создаваемые файлы. Без -c dcraw берёт имя исходника, удаляет последнее расширение и добавляет .pgm, .ppm, .pam или .tiff. Для встроенной миниатюры появляется часть .thumb. Если контейнер содержит несколько RAW-изображений и включён -s all, к имени добавляется номер выбранного кадра.

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

Основные функции и последовательность обработки

Определение файла и чтение метаданных

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

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

Режим -i -v полезен до любой пакетной операции. Он подтверждает модель камеры, число изображений в контейнере и ожидаемый размер результата. Если dcraw сообщает Cannot decode file, дальнейшие цветовые параметры не исправят проблему: декодер не смог определить или прочитать RAW-структуру.

Извлечение встроенной миниатюры

Опция -e не развивает сенсорные данные. Она извлекает миниатюру или предварительный кадр, записанный камерой внутрь RAW. Результат бывает JPEG или PPM в зависимости от контейнера. Размер, цвет и степень сжатия определены камерой, а не параметрами dcraw.

Извлечение миниатюры работает значительно проще полного RAW-конвейера и подходит для быстрого каталога, первичной сортировки или проверки содержимого. Оно не гарантирует полноразмерное изображение. Некоторые файлы не содержат отдельной миниатюры; тогда программа сообщает, что thumbnail отсутствует.

Опции баланса белого, интерполяции и восстановления светов не улучшают встроенный JPEG, потому что он уже обработан камерой. Для оценки возможностей самого RAW требуется обычное декодирование.

Коррекция дефектных пикселей и тёмного кадра

dcraw умеет интерполировать повреждённые или горячие пиксели по списку координат. Файл .badpixels содержит столбец, строку и время появления дефекта в формате Unix. Программа ищет этот файл в текущем и родительских каталогах, а опция -P позволяет указать другой путь.

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

Параметр -K вычитает тёмный кадр в виде 16-битного PGM. Тёмный кадр снимают без света при условиях, соответствующих рабочему изображению, и получают через режимы, сохраняющие исходные значения. Этот инструмент предназначен для стабильного узора шума и горячих пикселей, а не для универсального подавления шума любого снимка.

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

Без дополнительных опций dcraw использует фиксированный баланс белого, основанный на цветовой таблице под стандартным освещением D65. Это отличается от фирменного JPEG камеры и от многих современных RAW-редакторов, которые по умолчанию принимают записанное камерой значение.

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

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

Параметр -r принимает четыре собственных множителя каналов. Их можно взять из подробного вывода dcraw -v или из калибровки. Этот режим обеспечивает повторяемость серии, потому что один набор чисел применяется ко всем кадрам независимо от содержимого изображения.

Цветовые матрицы и ICC-профили

Опции +M и -M включают или отключают цветовую матрицу из метаданных. Для DNG и при использовании -w исходный режим предпочитает встроенную матрицу; для остальных случаев действует собственная логика dcraw. За пределами DNG эта настройка влияет прежде всего на отдельные файлы Olympus, Leaf и Phase One.

Параметр -o с числом от 0 до 6 выбирает цветовое пространство результата: raw color, sRGB, Adobe RGB, Wide Gamut RGB, ProPhoto RGB, XYZ или ACES. sRGB является стандартным вариантом для обычного просмотра. Более широкие пространства имеют смысл только в управляемой цветом цепочке и при корректно встроенном профиле результата.

При сборке с Little CMS опция -p принимает ICC-профиль камеры, а слово embed использует профиль из RAW-файла. Дополнительный -o с путём задаёт выходной ICC-профиль. Если встроенного профиля нет, dcraw сообщает об этом и не выполняет ожидаемое профильное преобразование.

Цветовой модуль dcraw не содержит современного набора профилей внешнего вида, плёночных симуляций или профилей конкретных объективов. Он переводит сенсорные значения в выбранное пространство на основе матриц и ICC, но не воспроизводит фирменные стили Picture Control, Film Simulation или Creative Style.

Демозаика и геометрия

Большинство камер записывает один цветовой компонент в каждой точке мозаичного сенсора. dcraw восстанавливает остальные компоненты интерполяцией. Опция -q выбирает один из четырёх алгоритмов: 0 — билинейный, 1 — VNG, 2 — PPG, 3 — AHD.

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

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

Параметр -f рассматривает два зелёных положения в Bayer-мозаике как отдельные цвета во время интерполяции. Он предназначен для устранения ложных сеток 2 × 2 и лабиринтных артефактов, которые появляются на отдельных сенсорах и алгоритмах. После интерполяции каналы сводятся к обычному RGB.

Опция -m несколько раз применяет медианный фильтр 3 × 3 к разностям R-G и B-G. Этот шаг уменьшает цветовые артефакты после демозаики, но чрезмерное число проходов сглаживает мелкую цветовую структуру.

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

dcraw автоматически применяет ориентацию камеры. Параметр -t задаёт поворот вручную, а -t 0 полностью его отключает. Опция -j запрещает специальный поворот Fuji Super CCD и растяжение изображений с неквадратными пикселями, сохраняя соответствие одного выходного пикселя одной исходной позиции.

Света, яркость и гамма

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

Опция -W отключает гистограммное автоматическое осветление и использует фиксированный белый уровень. Параметр -b делит белый уровень на заданное число и меняет яркость. Это глобальная операция, не заменяющая кривую, локальную экспозицию или тональное картирование.

Параметр -g задаёт степенную часть и наклон начального участка гамма-кривой. Стандарт dcraw соответствует BT.709: -g 2.222 4.5. Для sRGB документация предлагает -g 2.4 12.92. Опция -4 включает линейный 16-битный вывод и эквивалентна сочетанию -6 -W -g 1 1.

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

Режим -H управляет пересвеченными областями. Значение 0 обрезает света до белого и является стандартным. Значение 1 оставляет необрезанные значения с цветными оттенками, 2 смешивает обрезанные и необрезанные данные, а значения от 3 до 9 запускают реконструкцию. Низкие значения сильнее сохраняют нейтральный белый, высокие — цвет. Реконструкция не возвращает информацию из полностью насыщенных каналов и создаёт оценку по соседним данным.

Шумоподавление и хроматическая аберрация

Опция -n включает вейвлетное шумоподавление с числовым порогом. Документация предлагает диапазон от 100 до 1000 как рабочую область. Чем выше порог, тем больше мелких вариаций рассматривается как шум. Один параметр не разделяет яркостный и цветовой шум и не учитывает профиль конкретной камеры так подробно, как современные RAW-редакторы.

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

Входные и выходные форматы

Поддержка RAW

dcraw содержит отдельные обработчики для множества производителей и поколений камер. В перечне 9.28 присутствуют DNG, старые и профессиональные модели Canon, Nikon, Fujifilm, Olympus, Panasonic, Sony, Pentax, Leica, Phase One, Hasselblad, Kodak, Sigma и другие устройства. Поддержка определяется моделью и вариантом контейнера, а не только расширением.

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

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

dcraw работает только с файлами камер. Nikon NEF от плёночных сканеров не относится к поддерживаемому назначению. Также программа не выполняет передачу с USB-устройства и не просматривает карту памяти как каталог.

PGM, PPM и PAM

Стандартный полноцветный результат записывается в PPM, серый — в PGM, а изображения с дополнительными каналами — в PAM. Эти форматы семейства Netpbm просты и не требуют сложного кодека. Они удобны как промежуточные данные в Unix-конвейере, но поддерживаются не каждым бытовым просмотрщиком.

Без специальных опций образцы имеют разрядность 8 бит, гамму BT.709, уровень белого по гистограмме и не содержат метаданных. Опция -6 повышает разрядность до 16 бит. В 16-битном PNM порядок байтов следует требованиям формата, а не внутреннему порядку процессора.

PPM не сжимает фотографию, поэтому файл значительно крупнее JPEG и часто крупнее исходного RAW. Большой размер не означает, что dcraw добавил детализацию; он отражает несжатое хранение готовых каналов RGB.

TIFF

Опция -T переключает вывод на TIFF. dcraw записывает несжатые пиксельные данные и базовые сведения, включая производителя, модель, дату, параметры съёмки, автора, GPS при наличии и ICC-профиль результата. Это не полная копия всех MakerNotes и служебных блоков исходника.

Сочетание -6 -T создаёт 16-битный TIFF с применённой гаммой и выбранной цветовой обработкой. Сочетание -4 -T создаёт линейный 16-битный TIFF с фиксированным белым уровнем. Второй вариант удобнее как технический промежуточный материал, первый — для редактора, который ожидает уже отображаемые тона.

JPEG, PNG и другие форматы

dcraw не кодирует полноразмерный результат напрямую в JPEG, PNG, BMP или FITS. Для этого используется стандартный вывод -c и отдельный конвертер. Исходный PNM-поток передают cjpeg, pnmtopng, ImageMagick или другому инструменту.

Пример JPEG-конвейера: dcraw -c -w -q 3 photo.nef | cjpeg > photo.jpg

Пример PNG-конвейера: dcraw -c -w -q 3 photo.nef | pnmtopng > photo.png

В таком процессе dcraw отвечает за развитие RAW, а следующая программа — за конечное кодирование. Метаданные в JPEG или PNG не переносятся автоматически. Их добавляют отдельным этапом, если это требуется рабочему процессу.

Воспроизводимый рабочий сценарий

Для примера используется поддерживаемый файл IMG_0001.NEF. Цель — сначала подтвердить распознавание, затем получить быструю миниатюру и 16-битный TIFF с балансом белого камеры, AHD-интерполяцией и мягким смешиванием светов.

  1. Проверка файла. Команда dcraw -i -v IMG_0001.NEF не создаёт изображение. В выводе должны присутствовать модель камеры, размеры, параметры съёмки и строка о числе RAW-изображений. Сообщение Cannot decode file означает, что сценарий нужно остановить и выбрать другой декодер.
  2. Извлечение миниатюры. Команда dcraw -e IMG_0001.NEF создаёт IMG_0001.thumb.jpg или IMG_0001.thumb.ppm. Этот файл подтверждает содержимое кадра, но не качество полного развития.
  3. Полноразмерный вывод. Команда dcraw -v -w -q 3 -H 2 -6 -T IMG_0001.NEF создаёт IMG_0001.tiff. -w применяет баланс камеры, -q 3 выбирает AHD, -H 2 смешивает значения в светах, -6 сохраняет 16 бит, -T включает TIFF.
  4. Проверка ориентации и размера. Готовый TIFF открывают в просмотрщике с поддержкой 16 бит и управления цветом. Размер сравнивают со строкой Output size из dcraw -i -v. Поворот должен соответствовать метаданным камеры.
  5. Проверка светов. На ярких участках ищут цветные пятна и резкие белые границы. При цветном клиппинге сравнивают -H 0, -H 2 и один из режимов реконструкции, не меняя остальные параметры.
  6. Проверка цвета. Нейтральные объекты оценивают при управляемом профиле монитора. Если баланс камеры неверен для сцены, вместо -w используют -A с нейтральной областью или фиксированные множители -r для всей серии.

Сценарий не содержит обрезки, выравнивания горизонта, локального осветления, коррекции объектива или ретуши. Эти операции выполняются после dcraw в другом редакторе. Исходный NEF остаётся без изменений; исключение составляет отдельная опция -z, которая намеренно меняет временные атрибуты файла.

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

dcraw принимает несколько файлов в одной команде и обрабатывает их последовательно. В POSIX-оболочке команда dcraw -w -q 3 -6 -T *.NEF разворачивает шаблон средствами оболочки и передаёт программе список. В Windows правила шаблонов зависят от PowerShell, cmd или выбранной оболочки.

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

Опция -c делает dcraw удобным компонентом конвейера. Вывод можно направить в кодировщик, анализатор, хранилище или собственную программу. Защита от случайной печати бинарных пикселей в терминал встроена: если стандартный вывод подключён непосредственно к интерактивному терминалу, dcraw отказывается писать изображение и сообщает Will not write an image to the terminal.

Для контейнеров с несколькими RAW-кадрами параметр -s выбирает номер, а -s all развивает все изображения. Этот режим относится к реальным многокадровым контейнерам, например отдельным Fuji Super CCD SR, и не создаёт экспозиционный брекетинг из набора самостоятельных файлов.

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

Облачные, мобильные и ИИ-возможности

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

Официальных приложений dcraw для Android и iOS нет. Исходный код можно включать в другие проекты или собирать для нестандартной платформы, но такая программа уже является отдельным портом или оболочкой со своей поддержкой.

В dcraw отсутствуют нейросетевое шумоподавление, распознавание объектов, генеративное заполнение, автоматический выбор масок и обучение на пользовательских кадрах. Все операции заданы алгоритмами и числовыми параметрами исходного кода 9.28. GPU-ускорение также не предусмотрено.

Цена, редакции и условия использования

У dcraw нет подписки, платной редакции, пробного срока, рекламы, регистрации и ограничений по числу файлов. Исходный код можно загрузить и использовать без оплаты. Отдельных выпусков Free, Pro или Enterprise не существует.

Лицензирование upstream-кода сложнее простой пометки GPL. Заголовок dcraw.c разрешает загрузку и использование без отдельной лицензии, но задаёт условия законного распространения исполняемых файлов. Распространитель должен предоставить исходный код для файлов с ограниченными функциями, либо применить GPL версии 2 или новее, либо удалить и самостоятельно заменить ограниченные функции, либо приобрести лицензию у автора. Ограничение относится к функциям обработки Foveon, помеченным в исходнике.

Репозитории оформляют свои пакеты в соответствии с выбранной схемой и патчами. Homebrew маркирует формулу как GPL-2.0-or-later. Для пользователя готового системного пакета это не создаёт платного режима, но разработчику, который встраивает код dcraw в закрытый продукт, требуется отдельно проверить условия распространения конкретной ревизии.

Ограничения и риски

Главное ограничение — остановка upstream-разработки. dcraw 9.28 не получает таблицы новых камер и исправления новых разновидностей RAW. Даже когда расширение знакомо, новая схема сжатия или контейнер остаётся неподдерживаемой.

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

Третье ограничение — узкий набор выходных форматов. Прямой полноразмерный экспорт ограничен PNM и TIFF. Для JPEG, PNG и других контейнеров требуется дополнительная программа, а метаданные переносятся отдельным инструментом.

Четвёртое ограничение — отсутствие полноценного современного RAW-процесса. В dcraw нет каталогизации, неразрушающих sidecar-файлов, истории, коррекции перспективы, базы объективов, локальных масок, градиентов, кривых по зонам, слоёв и печатного модуля. Программа развивает файл один раз по параметрам командной строки.

Пятое ограничение — безопасность старого парсера. RAW является сложным бинарным входом, а upstream-код не менялся с 2018 года. Файлы из недоверенного источника разумно открывать обновлённым пакетом дистрибутива в ограниченной среде, а не старым случайным EXE с неизвестным происхождением.

Шестое ограничение — память и производительность. Код хранит значительные рабочие буферы в оперативной памяти и выполняет обработку на CPU. Большие многомегапиксельные файлы и несколько параллельных процессов требуют заметного объёма памяти. Встроенного планировщика для распределения нагрузки нет.

Седьмое ограничение — неполная передача метаданных. TIFF получает базовые поля, но не сохраняет весь набор MakerNotes и фирменных параметров. PGM, PPM и PAM по умолчанию выходят без метаданных.

Отдельного внимания требует -z. Эта опция меняет время доступа и модификации исходного AVI, JPEG, TIFF или RAW на время съёмки при предположении, что часы камеры были установлены по UTC. Она не создаёт копию и воздействует на атрибуты исходного файла. Перед массовым применением нужны резервная копия и проверка часового пояса.

Плюсы и минусы

Плюсы ✔️
  • Исходный код опубликован и остаётся доступным для сборки, аудита и воспроизводимого архивного процесса.
  • Одна команда сочетает распознавание RAW, чтение основных метаданных, извлечение миниатюры и развитие полного изображения.
  • Параметры точно фиксируются в скрипте, поэтому одинаковая команда повторяет обработку без скрытого состояния графического интерфейса.
  • Поддерживаются 8-битный, 16-битный и линейный 16-битный вывод, а также TIFF с базовыми метаданными.
  • Доступны четыре метода демозаики, несколько режимов светов, баланс камеры, автоматический и пользовательский баланс белого.
  • Есть технические инструменты для тёмного кадра, дефектных пикселей, уровня чёрного, насыщения и необработанных сенсорных значений.
  • Обработка локальная, без регистрации, подписки, облачной загрузки и обязательного подключения к интернету.
  • Программа принимает несколько файлов и легко встраивается в конвейер через стандартный вывод.
Минусы ❌
  • Upstream остановлен на версии 9.28 от 1 июня 2018 года и не получает поддержку новых камер.
  • Нет графического предварительного просмотра, гистограммы, интерактивных регуляторов и истории изменений.
  • Полноразмерный JPEG и PNG не создаются напрямую; нужен внешний кодировщик.
  • Нет каталога, локальных масок, коррекции объектива, перспективы, слоёв и проекта с неразрушающими настройками.
  • Подробные фирменные метаданные не переносятся полностью в результат.
  • Случайные Windows-сборки отличаются патчами и происхождением, а современного официального установщика нет.
  • Старый бинарный парсер не следует использовать для недоверенных файлов без обновлённой downstream-сборки и изоляции.
  • Подбор баланса, гаммы и светов требует повторных запусков и проверки в отдельной программе.

Кому подойдёт

  • Владельцам старых поддерживаемых камер. dcraw сохраняет стабильный декодер для архивных CR2, NEF, RAF, ORF и других форматов из своего перечня.
  • Разработчикам и исследователям. Режимы -D, -E, -4, -j и -t 0 дают доступ к сенсорным значениям и геометрии без обычной визуальной обработки.
  • Администраторам пакетных процессов. Команда легко фиксируется, журналируется и запускается на сервере без дисплея.
  • Пользователям Unix-конвейеров. PNM-поток через -c передаётся Netpbm, ImageMagick, собственному анализатору или кодировщику.
  • Архивам с требованием воспроизводимости. Версию исполняемого файла и параметры можно сохранить рядом с контрольными суммами исходных фотографий.
  • Тем, кому нужна локальная обработка. Файлы не отправляются в облако и не требуют учётной записи.

Кому не подойдёт

  • Владельцам современных камер, отсутствующих в списке 9.28. Для них нужен обновляемый декодер с актуальной поддержкой модели и типа сжатия.
  • Новичкам, ожидающим визуальный редактор. В dcraw нет ползунков, превью и автоматического сравнения вариантов.
  • Фотографам с полноценным неразрушающим процессом. Каталог, рейтинги, виртуальные копии, маски и sidecar-настройки отсутствуют.
  • Пользователям, которым нужен готовый JPEG одним самостоятельным приложением. Для JPEG требуется внешний кодировщик и отдельный перенос метаданных.
  • Командам с совместной библиотекой и облачным доступом. dcraw не управляет пользователями, ролями, версиями и синхронизацией.
  • Тем, кому нужны профильные коррекции объектива и современные алгоритмы шума. Встроенные средства программы значительно уже актуальных RAW-редакторов.

Альтернативы dcraw

LibRaw и dcraw_emu

LibRaw развился из идей и кода dcraw в поддерживаемую библиотеку. Актуальная ветка 0.22 получает новые камеры, исправления входных проверок и обновления декодеров. В поставке есть пример dcraw_emu, который воспроизводит значительную часть привычной модели командной строки. Это наиболее прямой переход для разработчика, которому требуется современная поддержка RAW и библиотечный интерфейс.

LibRaw лучше подходит для встраивания в приложение и современных камер. Оригинальный dcraw остаётся проще как один самостоятельный исходный файл и стабильный исторический эталон.

RawTherapee

RawTherapee — полноценный бесплатный RAW-редактор с графическим интерфейсом, профилями обработки и отдельным rawtherapee-cli для пакетных операций. Он предоставляет больше инструментов по цвету, шуму, резкости, геометрии и коррекции объектива, а настройки сохраняются в профилях.

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

darktable

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

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

Adobe DNG Converter

Adobe DNG Converter бесплатно преобразует поддерживаемые фирменные RAW-файлы в DNG. Он не заменяет развитие в готовый TIFF, а стандартизирует контейнер и помогает открыть новую камеру в программном обеспечении, которое понимает соответствующую версию DNG.

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

Частые проблемы и диагностика

Cannot decode file

Сообщение означает, что после анализа заголовка dcraw не выбрал рабочий декодер или признал параметры недопустимыми. Сначала выполняют dcraw -i -v для одного файла и сверяют модель. Затем проверяют, открывается ли другой RAW с той же камеры. Один повреждённый файл указывает на проблему данных, а отказ всей серии современной модели — на отсутствие поддержки.

Переименование расширения не помогает, потому что dcraw читает внутреннюю структуру. Для новой модели переходят на LibRaw, RawTherapee, darktable, Adobe DNG Converter или фирменное приложение камеры.

Файл открылся, но изображение зелёное или слабо окрашено

Причина связана с отсутствующей или неподходящей цветовой матрицей. Проверяют подробный вывод, режим -w и поведение +M. Для DNG используют встроенные матрицы и при наличии ICC — -p embed. Если модели нет в цветовой таблице dcraw, числовая коррекция без калиброванной мишени не обеспечивает достоверный цвет.

16-битный результат выглядит очень тёмным

Сначала различают -6 и -4. -6 сохраняет 16 бит с обычной гамма-кривой, а -4 создаёт линейные данные и отключает автоматическое осветление. Линейный файл требуется открыть в редакторе с настройкой экспозиции и тональной кривой. Принудительное увеличение яркости в простом просмотрщике не является проверкой сохранности светов.

PPM не открывается

Формат PPM поддерживается не всеми стандартными приложениями. Используют -T для TIFF либо передают -c внешнему конвертеру. Перед удалением PPM проверяют, что конечный JPEG или PNG имеет ожидаемые размеры и каналы.

Вместо изображения в терминале появляется отказ

С опцией -c бинарные данные должны быть перенаправлены в файл или канал. dcraw специально не пишет изображение в интерактивный терминал. Нужна конструкция с символом перенаправления или вертикальным каналом к кодировщику.

Не извлекается миниатюра

Сообщение has no thumbnail означает отсутствие поддерживаемой встроенной миниатюры. Оно не доказывает повреждение сенсорных данных. Проверяют обычное dcraw -i и полное развитие без -e.

Профиль не применяется

Для ICC требуется сборка с Little CMS. Команда -p embed работает только при наличии встроенного профиля. Сообщение has no embedded profile требует указать внешний профиль камеры или использовать матричное преобразование -o. Путь к профилю проверяют отдельно; ошибка Cannot open file относится к доступности файла профиля.

Lossy DNG или отдельный Kodak не открывается

Сборка NODEPS отключает libjpeg. Исходный код прямо прекращает обработку Adobe Lossy DNG и некоторых сжатых Kodak, выводя требование связать dcraw с libjpeg. Решение — установить полнофункциональный пакет или пересобрать программу с JPEG-библиотекой.

RED или данные JPEG 2000 не декодируются

Для соответствующего пути требуется JasPer. Сборка без libjasper выводит отдельное предупреждение. Подмена параметров командной строки не заменяет отсутствующую библиотеку.

На мелких деталях появилась цветная сетка

Сравнивают -q 0, -q 1, -q 2 и -q 3 на одном фрагменте при одинаковом балансе и гамме. Для характерной сетки 2 × 2 применяют -f. Небольшое число проходов -m уменьшает остаточные цветовые артефакты, но результат проверяют при масштабе 100 процентов.

Света стали розовыми

Режим -H 1 намеренно сохраняет необрезанные значения, которые могут выглядеть розовыми. Для естественного перехода используют -H 2, а для реконструкции сравнивают значения от 3 до 9. Если розовый оттенок появляется при стандартном -H 0, проверяют уровень насыщения, матрицу и профиль.

Выходной файл не создаётся

dcraw строит имя рядом с исходником. Ошибка записи возникает при отсутствии прав, только читаемом каталоге, конфликте имени или нехватке места. С -c результат можно перенаправить в доступную папку. Перед пакетной обработкой проверяют один файл и свободное место: несжатые TIFF и PPM занимают значительно больше исходных RAW.

Обработка завершается из-за памяти

Рабочие буферы растут вместе с числом пикселей. Сначала отключают внешнюю параллельность и обрабатывают один файл. Для быстрого предварительного результата используют -h. Если одиночный полноразмерный файл не помещается, требуется 64-битная сборка и больше доступной памяти либо современный конвертер с другой архитектурой.

Как проверить результат

  • Сохранить вывод dcraw -i -v и убедиться, что производитель, модель и размеры соответствуют исходному файлу.
  • Проверить код завершения и отсутствие сообщений Cannot decode file, has no embedded profile и ошибок библиотек.
  • Сравнить Output size с фактическими размерами TIFF или PPM.
  • Открыть 16-битный результат в приложении, которое действительно поддерживает 16 бит и ICC-профили.
  • Проверить нейтральные области, насыщенные цвета, глубокие тени и яркие источники отдельно.
  • Сравнить несколько режимов -H на одном и том же кадре, не меняя одновременно баланс белого и гамму.
  • Для линейного -4 не оценивать изображение по виду без последующей тональной кривой.
  • Убедиться, что ориентация правильная; для сенсорного анализа использовать -j -t 0.
  • Проверить отсутствие цветной сетки на ткани, ветвях и диагоналях при масштабе 100 процентов.
  • Сверить базовые метаданные TIFF, не рассчитывая на полное сохранение MakerNotes.
  • Сохранить точную команду, версию dcraw и контрольную сумму исполняемого файла для повторной обработки.
  • Не удалять RAW после получения одного TIFF: выход dcraw является производным файлом и не заменяет оригинал.

FAQ

dcraw является полноценным RAW-редактором?

Нет. Это декодер и конвертер командной строки. Он выполняет базовое развитие RAW, но не предлагает каталог, локальные маски, слои, историю и визуальный проект.

Можно ли получить JPEG одной командой?

Сам dcraw не кодирует полноразмерный JPEG. Одна строка оболочки объединяет dcraw -c и cjpeg, но в ней работают две программы. Встроенная миниатюра через -e уже может быть JPEG.

Изменяет ли dcraw исходный RAW?

Обычное декодирование только читает исходник и создаёт новый файл. Опция -z является исключением: она меняет временные атрибуты исходного файла.

Нужен ли интернет?

Нет. После установки обработка выполняется локально. Интернет требуется только для получения пакета, исходного кода или обновлений системы.

Есть ли бесплатный режим с ограничениями?

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

Почему число поддерживаемых камер не равно числу расширений?

Один производитель использует несколько структур под одинаковым расширением, а один контейнер DNG применяется многими устройствами. dcraw сопоставляет внутренние данные и модель, а не только окончание имени.

Поддерживает ли dcraw Canon CR3?

В upstream-коде 9.28 нет обработчика CR3 и камер семейства EOS R. Для таких файлов нужен актуальный LibRaw, RawTherapee, darktable, Adobe DNG Converter или фирменный конвертер Canon.

Что выбрать: -6 или -4?

-6 сохраняет 16 бит с обычной гаммой и автоматическим белым уровнем. -4 создаёт линейный 16-битный материал, отключает автоматическое осветление и требует последующей тональной обработки.

Сохраняет ли TIFF все EXIF и MakerNotes?

Нет. dcraw записывает базовые поля съёмки, производителя, модель, дату, GPS при наличии и профиль, но не копирует весь фирменный блок метаданных.

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

Да. Программа не требует дисплея и подходит для консольной среды. Для новых камер и недоверенных входных файлов предпочтительнее актуальная downstream-сборка или современный LibRaw.

Подходит ли dcraw для научного анализа сенсора?

Режимы -D, -E, -4, -j и -t 0 дают необработанные значения, маскированные края и исходную геометрию. Для измерений требуется документировать уровень чёрного, насыщение, порядок байтов, камеру и точную версию программы.

Заменяет ли dcraw фирменный конвертер камеры?

Нет. Фирменное ПО знает собственные стили, объективы и закрытые параметры камеры. dcraw обеспечивает независимое декодирование и управляемый набор общих алгоритмов, но не повторяет точный JPEG-процесс производителя.

Итог

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

Для современной фотографии dcraw уже не является основным выбором. Остановка upstream в 2018 году исключает систематическую поддержку новых камер, а отсутствие визуального редактора, профилей объективов и неразрушающих инструментов увеличивает объём внешней работы. В командных системах с актуальными RAW разумнее использовать LibRaw или консольные режимы RawTherapee и darktable. Adobe DNG Converter подходит, когда главная задача — перевести новый фирменный RAW в поддерживаемый DNG без развития в готовое изображение.

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

Поделиться с друзьями
Андрей Федоров
Андрей Федоров

Фотография – это целое искусство, где необходима полная самоотдача, недюжинный самоконтроль и безупречное чувство прекрасного. А если вы ещё и желаете досконально разбираться в фототехнике – вам потребуется соответствующее образование и немалый опыт. У меня имеется и то, и другое, ведь я работаю профессиональным фотографом уже около 20 лет. За плечами высшее техническое образование в сфере фототехники, а также подтверждённая профессия «Фотоискусство и диджитал графика» от РГУ имени А. Н. Косыгина. Кроме того, полученные специальности не остановили меня в развитии, и я закончил ещё и несколько платных тематических курсов, существенно подтянув свои знания в сфере фотодела. В конце концов жизненный путь привёл меня к созданию своего сайта, где я делюсь собственным немалым опытом с читателями. Подробнее обо мне...

Оцените автора
( Пока оценок нет )
Топ фотограф
Добавить комментарий