日期:2014-05-20  浏览次数:20752 次

请问怎么从BufferedImage image得到byte[]数据。
我现在已经有BufferedImage   image,   怎么得到一个byte[]的数组呢??

但是不要经过文件转。否则太慢了了。

------解决方案--------------------
BufferedImage srcImage = ImageIO.read(new File( "c:/xxx.jpg "));
byte[] data = ((DataBufferByte) srcImage.getData().getDataBuffer()).getData();
------解决方案--------------------
一个BufferedImage可以得一个Int[]数组.用它的getRGB方法.取得的是它的相素信息.
从一个int[]到BufferedImage可以用MemoryImageSource.

我想取得byte[]数组是没有什么意义的.当然不是不可以实现.用ImageIO类.
BufferedImage bi=ImageIO.read(new ByteArrayInputSream(byte[]);
ImageIO.write(bufferedImage, "gif ",new ByteArrayOutputStream(new byte[20000]));然后你就可以从这个ByteArrayOutputStream取得你想要的byte啦!
不过这样一点意义也没有,你无法改任何相素.