从Java读取RAW图像

时间:2009-08-03 13:22:06

标签: java image-processing

佳能/尼康/其他相机以其某些专有格式(.CR2,无论如何)保存传感器的原始输出。是否有任何Java库旨在读取它们并转换为可管理的BufferedImages?

我在此并不关心完全可自定义的转换,类似于ufraw或imagemagick,而是简单的“只是工作”来渲染此类图像的简单预览。

4 个答案:

答案 0 :(得分:7)

我一直在你身边,我为你感觉。最好的办法是使用基于Adobe或dcraw的程序自动创建缩略图。使用Adobe转换器的临时DNG文件可能更容易使用。

如果你坚持用Java做这件事,你就会陷入痛苦之中。 RAW格式经常变化,有各种各样的疯狂细微差别并且故意难以使用。相机制造商希望您使用他们的RAW转换软件,以最佳方式显示相机的能力并拧紧Adobe。 dcraw背后的人发现有些是相机制造商甚至现在使用加密!

现有的Java库很差 - 自上次查看以来,JRawIO已经有所改进,但它只支持dcraw的一小部分格式。除了列出的库之外,imagero可能还可以显示图像的缩略图。

根据个人经验,甚至不要考虑编写自己的RAW文件阅读器。 我尝试用一​​个非常简单的RAW格式做一次(只是一个固体的传感器数据阵列,每像素12位)。 dcraw源严重转换为Java。你有没有看到过这样一个有点小小的噩梦。花了我几天来调试字节对齐和字节序的问题。

答案 1 :(得分:3)

jrawio是Java Image I / O的插件。有了它,您可以从原始图像文件中读取栅格数据,缩略图和元数据。

答案 2 :(得分:2)

nef和cr2已包含jpeg中的预览图像。找到正确的偏移量和正确的长度来提取它...... Laurent Clevy @ lclevy.free.fr/raw

劳伦

答案 3 :(得分:1)

除非你想给自己写file parser/loader(听起来很有趣),否则JMagick可能会帮助你。我没有尝试过它,因为JMagick使用JNI,所以它可能无法使用你的目标平台。

更新:dcraw看起来像是一个很好的资源/参考

相关问题