Чтение RAW-изображений с Java

Canon/Nikon/другие камеры сохраняют исходный выход своего сенсора в некоторых своих фирменных форматах (.CR2, что угодно). Есть ли какая-либо Java-библиотека, предназначенная для их чтения и преобразования в управляемые BufferedImages?

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

Ответы

Ответ 1

Я был там, где ты есть, и я чувствую к тебе. Лучше всего использовать программу Adobe или dcraw для автоматического создания эскизов. Временные файлы DNG с использованием конвертера Adobe могут быть проще в использовании.

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

Существующие библиотеки Java плохой - JRawIO улучшился с тех пор, как я в последний раз смотрел на него, но он поддерживает только небольшую часть форматов, которые делает dcraw. В дополнение к перечисленным библиотекам библиотека imagero может предоставить возможность отображения миниатюры для вашего изображения.

Из личного опыта даже не задумывайтесь о написании собственного считывателя RAW файлов. Я попытался сделать это с помощью очень простого формата RAW один раз (просто массив данных датчиков, 12 бит на пиксель). Источник dcraw плохо переносит Java. Ты никогда не видел такого кошмара. Мне потребовались дни для отладки проблем с выравниванием байтов и контентом.

Ответ 2

jrawio является плагином для ввода/вывода изображений Java. С его помощью вы можете читать растровые данные, миниатюры и метаданные из файла необработанного изображения.

Ответ 3

nef и cr2 уже содержат изображения предварительного просмотра в jpeg. просто найдите правильное смещение и нужную длину, чтобы извлечь его... Laurent Clevy @lclevy.free.fr/raw

Лоран

Ответ 4

Если вы не хотите написать собственный файловый парсер/загрузчик (звучит весело imho;)), возможно JMagick поможет вам. Я не пробовал, и это может не сработать с вашей целевой платформой, поскольку JMagick использует JNI.

UPDATE: dcraw выглядит как хороший ресурс/ссылка