Как читать данные изображения из .cr2
(необработанный формат изображения Canon) в C ++?
Единственная операция, которую мне нужно выполнить, — это непосредственное чтение данных пикселей файла .cr2, если это возможно, в противном случае я хотел бы преобразовать его в любое изображение без потерь и прочитать данные его пикселей.
Какие-либо предложения?
Я бы тоже пошел с ImageMagick. Вам не нужно конвертировать все ваши файлы заранее, вы можете делать их по одному, когда вам это нужно.
В вашей программе вместо открытия CR2
файл, просто открой трубу (popen()
вызов), который выполняет команду ImageMagick, как
convert file.cr2 ppm:-
тогда вы можете прочитать чрезвычайно простой формат PPM, который описан Вот — в основном это просто строка текста ASCII, которая сообщает вам тип файла, затем другая строка текста ASCII, которая сообщает вам размеры изображения, затем максимальное значение и затем данные в двоичном виде.
Позже вы можете использовать библиотеку ImageMagick и API, если вам это нужно.