从Java读取RAW图像
问题内容:
佳能/尼康/其他相机将传感器的原始输出保存为某些专有格式(.CR2等)。是否有旨在读取它们并将其转换为可管理的BufferedImages的Java库?
在这里,我不需要关心完全可定制的转换(类似于ufraw或imagemagick),而是“可以正常工作”以渲染此类图像的简单预览的简单方法。
问题答案:
我去过你那里,我对你有感觉。最好的选择是使用基于Adobe或dcraw的程序自动创建缩略图。使用Adobe转换器的临时DNG文件可能更易于使用。
如果您坚持使用Java进行操作,那么您将陷入无数痛苦。 RAW格式经常更改,具有各种疯狂的细微差别,并且刻意难以使用。相机制造商希望您使用THEIR
RAW转换软件,以最好地显示相机的功能,并利用Adobe。dcraw背后的家伙发现有些相机制造商现在甚至使用加密!
现有的Java库很差-
自上次查看以来,JRawIO已有所改进,但它仅支持dcraw格式的一小部分。除了列出的库之外,imagero库
还可以 显示图像的缩略图。
从个人经验来看,甚至不用考虑编写自己的RAW文件阅读器。
我曾经尝试使用非常简单的RAW格式(仅传感器数据的固定数组,每个像素12位)来执行此操作。dcraw源将Java转换得很糟。您从未见过如此繁琐的噩梦。花了我几天时间来调试字节对齐和字节序问题。