从数据数组

时间:2017-02-19 03:32:34

标签: java image javafx

我编写了一个图像处理应用程序,使用javafx作为gui我想在屏幕上显示已处理的图片。我的程序将图像处理为三维双数组,如double [3] [1080] [1920],所以我必须减少图像的颜色空间并将双精度转换为字节或(如果可能)短裤,因为ImageView的javafx不支持每个RGB组件的浮点值或64位。我发现,Imageview只能加载来自文件或输入流的数据,所以我必须创建一个BufferedImage,用数组中的convertet数据填充它,并将BufferedImage编码作为JPEG,BMP,PNG或GIF写入流并使用javafx.scene.image.Image的construcor读取此流并将此图像传递给ImageView。将阵列转换为图像的一种残酷方法,我更新想要以任何文件格式进行编码,但我发现没有替代方法(除了不使用javafx)。

现在我的第一个问题:
BufferedImage的setRGB方法将所有颜色组件粘在一起作为int。我怎样才能以正确的方式将它们组合起来? 我的第二个问题:
是否为每个组件节省超过8位的方法?

谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

WritableImage使用PixelFormatPixelWriter设置setPixels,以完全相同的方式处理byte数组PixelFormatPixelFormat.getByteRgbInstance()