gpt4 book ai didi

java - 如何从 Java 中的 2D float 组编写 TIFF?

转载 作者:行者123 更新时间:2023-12-04 06:25:07 25 4
gpt4 key购买 nike

在 Java 程序中,我有一个 1024 x 1024 的浮点数组。如何编写与此数组表示的图像对应的 TIFF 文件?

说明:

  • 我要求提供一个代码片段,说明如何编写与浮点数组相对应的 TIFF。
  • 我正在寻找灰度图像。
  • 我知道如何将 1024 x 1024 的浮点数组转换为任何其他 1024 x 1024 的数值数组;例如如果您想到的方法需要在 [0, 1.0) 范围内的 1024 x 1024 浮点数,没问题,我知道如何转换我的数据以便此约束成立。

  • 谢谢!

    最佳答案

    您将遇到的问题是,虽然可以在 TIFF 中为像素数据提供浮点值,但这不是基线规范的一部分。 TIFF 是一个足够糊状的规范,允许浮点样本,但不能标准化它们的语义含义。例如,我有一位客户拥有由 Java 应用程序生成的浮点样本(我相信是使用 ImageJ ),并希望我们能够正确读取它们。 ImageJ 已将严重序列化的哈希表放入其中一个描述字符串中,因此我必须为他们提供适用于该示例文件但可能不适用于其他文件的代码。不要成为那个 Java 应用程序。如果您打算使用 ImageJ 编写浮点 TIFF,请将您的数据标准化为 0 和 1 之间,因为这样我可以保证至少我的工具将正确读取它而不依赖于语义。
    虽然基线规范表示每 channel 16 位样本不是基线的一部分,但它们更有可能被当前的 TIFF 消费者识别。所以从长远来看,如果你一心想写 TIFF,你可能会更高兴用 0..65535 范围内的 16 位样本编写灰度。
    如果您认为要编写不兼容的 TIFF,只需编写自己的文件格式并发布规范和读写代码即可。如果您将其硬塞进 TIFF,无论如何您都在创建一种新格式,并且您将破坏大多数使用 TIFF 的应用程序作为副作用。哪个对生态系统更好?
    请记住,当您写出糟糕的 TIFF 时,天使会被点燃。

    关于java - 如何从 Java 中的 2D float 组编写 TIFF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6132711/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com