实际上我正在使用 BufferedImages,它为我提供int类型的像素值。
你知道一个 Java 对象来表示一个双精度或浮点类型的像素值的图像吗?
您可以使用 Java 高级成像 API (JAI)。
JAI 引入了两个新的数据类,它们扩展了 Java 2DDataBuffer
图像数据类:DataBufferFloat
和DataBufferDouble
.
我确实知道一个实现,但您可以使用 SampleModel/WritableRaster 独立访问波段并根据需要创建自己的支持。不过,它可能不会很有趣。虽然,我会质疑“访问组件(??)作为双精度/浮点数”的要求(除非你正在做一些有趣的事情,比如 OpenGL 8 位浮点数......无论如何都不会映射到 Java 浮点数:-)
我不确定您的最终目标是什么,但您可以查看java.awt.image.ColorModel 。或者你可以在 float[][]/double[][] 上进行处理,然后在需要对 BufferedImage 执行某些操作时进行舍入。