Необработанные изображения и DCRaw в C++
Я хочу иметь возможность работать с изображениями RAW в C++, поэтому я скачал уже скомпилированный исполняемый файл DCRaw. Я сам пытался скомпилировать, но получал ошибки. Поэтому я хочу иметь возможность читать необработанные изображения на C++ и работать с ними. Каков был бы лучший способ сделать это? Должен ли я найти способ включить dcraw.c в мои проекты и вызывать в них функции, или я должен получить доступ к файлу EXE с помощью функции system(...)?
1 ответ
Если вы не хотите манипулировать необработанными данными непосредственно в вашем приложении, тогда да, вы должны использовать уже существующую реализацию декодера необработанных изображений (например, dcraw, как вы сказали).
Вот что я бы сделал в порядке предпочтения:
Сначала я бы попытался найти другой необработанный декодер изображений, который доступен в виде статической или динамической версии библиотеки, и ссылку на него (у dcraw есть только исполняемый файл).
Если № 1 невозможен, я извлеку соответствующие части dcraw в статическую библиотеку и сошлюсь на нее.
Если это невозможно, я бы включил файл.c в мой код, как вы предложили.
Я бы только выполнял EXE изнутри моей программы как последнее средство.
При этом, если ваше приложение предназначено только для экспериментов, я не вижу ничего плохого в использовании dcraw EXE из вашей программы. Иначе я бы не стал делать это в профессиональном приложении.