如何在Java中从二维浮点数数组编写TIFF?

如何在Java中从二维浮点数数组编写TIFF?,java,image,tiff,Java,Image,Tiff,在Java程序中,我有一个1024 x 1024的浮点数组。如何编写与此数组表示的图像对应的TIFF文件 澄清: 我要求提供一个代码片段,说明如何编写与浮点数组对应的TIFF 我在找灰度图像 我知道如何将1024 x 1024个浮点数组转换为任何其他1024 x 1024个数值数组;e、 g.如果您心目中的方法要求,例如,1024 x 1024在[0,1.0]范围内浮动,那么没问题,我知道如何转换数据,以保持此约束 谢谢 kjo可以编写TIFF文件。处理TIFF图像的标准是,它是用C编写的。 可

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

澄清:

  • 我要求提供一个代码片段,说明如何编写与浮点数组对应的TIFF
  • 我在找灰度图像
  • 我知道如何将1024 x 1024个浮点数组转换为任何其他1024 x 1024个数值数组;e、 g.如果您心目中的方法要求,例如,1024 x 1024在[0,1.0]范围内浮动,那么没问题,我知道如何转换数据,以保持此约束
  • 谢谢


    kjo可以编写TIFF文件。

    处理TIFF图像的标准是,它是用C编写的。
    可以从Java调用本机C代码。

    您将遇到的问题是,虽然TIFF中像素数据可能有浮点值,但这不是基线规范的一部分。TIFF是一个足够模糊的规范,允许使用浮点示例,但不能标准化其语义含义。例如,我有一个C拥有Java应用程序生成的浮点样本的客户(我相信使用)并且希望我们能正确地读取它们。ImageJ将一个严重序列化的哈希表放入了一个描述字符串中,所以我必须给他们一些代码,这些代码可以用于该示例文件,但可能不适用于其他文件。不要使用Java应用程序。如果您要使用ImageJ编写浮点TIFF,请在0和1之间规范化您的数据,beca使用后,我可以保证至少我的工具能够正确阅读,而不依赖于语义

    虽然基线规范规定每通道16位样本不是基线的一部分,但它们更有可能被当前的TIFF消费者识别。因此,如果你下定决心编写TIFF,那么从长远来看,编写16位样本在0..65535范围内的灰度,你可能会更高兴

    如果你认为你将要编写一个不兼容的TIFF,只需编写你自己的文件格式,并发布规范和读写代码。如果你将其加入TIFF,你将创建一个新的格式,并将破坏大多数使用TIFF的应用程序作为副作用。哪一个对生态系统更有利


    请记住,当您编写一个糟糕的TIFF时,天使会被点燃。

    浮点值代表什么-图像大小为1024x1024像素的灰度级?是的,有Java本机接口(JNI)。