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