【发布时间】:2009-08-06 01:23:02
【问题描述】:
佳能/尼康/其他相机以某些专有格式(.CR2 等)保存其传感器的原始输出。是否有任何 Java 库旨在读取它们并将其转换为可管理的 BufferedImages?
我在这里并不关心类似于 ufraw 或 imagemagick 的完全可定制的转换,而是一些简单的“可以正常工作”来呈现此类图像的简单预览。
【问题讨论】:
标签: java image-processing
佳能/尼康/其他相机以某些专有格式(.CR2 等)保存其传感器的原始输出。是否有任何 Java 库旨在读取它们并将其转换为可管理的 BufferedImages?
我在这里并不关心类似于 ufraw 或 imagemagick 的完全可定制的转换,而是一些简单的“可以正常工作”来呈现此类图像的简单预览。
【问题讨论】:
标签: java image-processing
我一直在你所在的地方,我对你有感觉。最好的办法是使用 Adobe 或基于 dcraw 的程序自动创建缩略图。使用 Adobe 转换器的临时 DNG 文件可能更易于使用。
如果你坚持用 Java 来做,你就会陷入痛苦之中。 RAW 格式经常变化,有各种疯狂的细微差别,并且故意难以处理。相机制造商希望您使用他们的 RAW 转换软件,以最好地展示相机的能力并拧 Adobe。 dcraw 背后的家伙发现现在有些相机制造商甚至使用加密!
现有的 Java 库很差——自从我上次查看 JRawIO 以来,它已经有所改进,但它只支持 dcraw 所支持的格式的一小部分。除了列出的库之外,imagero 库可能提供显示图像缩略图的功能。
根据个人经验,不要考虑编写自己的 RAW 文件阅读器。 我曾经尝试过使用非常简单的 RAW 格式(只是一个可靠的传感器数据阵列,每像素 12 位)。 dcraw 源代码很难转换为 Java。你从来没有见过这样的比特摆弄的噩梦。我花了几天时间来调试字节对齐和字节序问题。
【讨论】:
jrawio 是一个 Java Image I/O 插件。有了它,您可以从原始图像文件中读取光栅数据、缩略图和元数据。
【讨论】:
nef 和 cr2 已经包含 jpeg 格式的预览图像。只需找到正确的偏移量和正确的长度来提取它...... Laurent Clevy @ lclevy.free.fr/raw
劳伦特
【讨论】:
除非你想写你自己的file parser/loader(听起来很有趣,恕我直言;)),也许JMagick会帮助你。我还没有尝试过,由于 JMagick 使用 JNI,它可能无法在您的目标平台上工作。
更新:dcraw 看起来是一个很好的资源/参考
【讨论】: