如何在缓冲图像中写入双值

时间:2016-05-19 11:30:09

标签: java bufferedimage pixels

是否有可能将双二进制值写入缓冲图像,而无需在Java中进行任何类型转换?我有一个带有双值的二维矩阵。我希望将其写为图像,但在缓冲图像中,只能写入整数值。最后,我必须能够从该图像中读取那些双重值。有任何想法吗 ??帮助我

1 个答案:

答案 0 :(得分:1)

是的,你可以,但首先你必须使用DataBufferDouble类型的DataBuffer创建一个BuffuredImage:

public static BufferedImage Double(int width, int height, int channel)
    {
    ColorSpace myColorSpace = new FloatCS(channel == 1 ? ColorSpace.TYPE_GRAY : ColorSpace.TYPE_RGB, channel) ;

    ColorModel myColorModel = new ComponentColorModel(myColorSpace,null,false,false,ColorModel.OPAQUE,DataBuffer.TYPE_DOUBLE) ;

    return new BufferedImage(myColorModel, myColorModel.createCompatibleWritableRaster(width, height), false, null) ;
    }

然后使用Raster或直接使用DataBuffer访问像素,但不使用getRGB。