【问题标题】:Reading RAW images from Java从 Java 读取 RAW 图像
【发布时间】:2009-08-06 01:23:02
【问题描述】:

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

我在这里并不关心类似于 ufraw 或 imagemagick 的完全可定制的转换,而是一些简单的“可以正常工作”来呈现此类图像的简单预览。

【问题讨论】:

    标签: java image-processing


    【解决方案1】:

    我一直在你所在的地方,我对你有感觉。最好的办法是使用 Adob​​e 或基于 dcraw 的程序自动创建缩略图。使用 Adob​​e 转换器的临时 DNG 文件可能更易于使用。

    如果你坚持用 Java 来做,你就会陷入痛苦之中。 RAW 格式经常变化,有各种疯狂的细微差别,并且故意难以处理。相机制造商希望您使用他们的 RAW 转换软件,以最好地展示相机的能力并拧 Adob​​e。 dcraw 背后的家伙发现现在有些相机制造商甚至使用加密!

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

    根据个人经验,不要考虑编写自己的 RAW 文件阅读器。 我曾经尝试过使用非常简单的 RAW 格式(只是一个可靠的传感器数据阵列,每像素 12 位)。 dcraw 源代码很难转换为 Java。你从来没有见过这样的比特摆弄的噩梦。我花了几天时间来调试字节对齐和字节序问题。

    【讨论】:

    • 很遗憾,你是对的。我已经尝试过可能最接近我需要的 jmagick,但使用起来仍然很痛苦。 Jrawio 没有为佳能 5dMkII 照片制作。
    • 我仍然建议尽可能转换为 DNG,因为这不会发生太大变化,并且 jrawio 和其他程序更好地支持。 Adobe Lightroom 有一个用于 DNG 格式的内置查看器(带有拇指),Mac OS 和许多程序也是如此。如果你有一个 5DMkII,那么你有我无限的羡慕,我不能责怪你想用 Java 管理你的 RAW 文件。那是一台很棒的相机,您应该真的看看 Lightroom 来管理您的工作流程。我对此感到非常高兴。
    • ...“故意难以合作”...啊,钱,技术世界的第一大问题。
    【解决方案2】:

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

    【讨论】:

    • jrawio 非常酷,虽然它有一些怪癖——在我的情况下它不会成功(佳能 5dmkii 图像有问题),但对其他人来说可能。
    【解决方案3】:

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

    劳伦特

    【讨论】:

      【解决方案4】:

      除非你想写你自己的file parser/loader(听起来很有趣,恕我直言;)),也许JMagick会帮助你。我还没有尝试过,由于 JMagick 使用 JNI,它可能无法在您的目标平台上工作。

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

      【讨论】:

      • 感谢您对 JMagick 的引用,这是一款很酷的软件。我很高兴支持这个答案,尽管我不太喜欢 JNI。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多