如果手头有java.awt.Image
对象,如何获得图像数据的字节数组?
如果我有子类java.awt.Image
,我可以这样做:
BufferedImage
…[BufferedImage
取一个ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
ImageIO.write( thumbnail , "jpeg" , baos ) ;
baos.flush();
final byte[] bytes = baos.toByteArray() ;
—由ImageIO.write
实现但不是其超类ImageIO.write
实现的接口。
[不幸的是,我没有RenderedImage
或RenderedImage
。在原始BufferedImage
对象上调用java.awt.Image
以获取缩小的BufferedImage
图像后,手边只有一个BufferedImage
对象。我试图在RenderedImage
对象中获取数据的字节数组。
您可以创建一个新的RenderedImage
对象,然后通过在其上调用getScaledInstance
来获取其图形对象,然后使用该图形对象上的getScaledInstance
将图像绘制到其中,然后将BufferedImage转换为PNG或JPG。