请教一个关于java.awt.Image与sun.awt.image.ToolkitImage,java.awt.image.BufferedImage的问题

jahorn 2011-04-17 10:30:58
最近要用java进行图像处理,其中用的创建图像的方法为:
Image bImg = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(500, 300, img.getColorModel(), bytePixels, 0, 500))接着想把创建的图像保存到本地文件系统,用到的方法:
ImageIO.write(bImg, "jpeg", new File("D:\\test.jpg"));
结果报错:sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage
经过调试,发现:
1.Toolkit.getDefaultToolkit()返回的是sun.awt.HeadlessToolkit的一个实例;
2.sun.awt.HeadlessToolkit的方法createImage(ImageProducer producer)返回的是一个sun.awt.image.ToolkitImage实例;
3.sun.awt.image.ToolkitImage是一个java.awt.Image的一个子类;
4.javax.imageio.ImageIO.write(RenderedImage im,String formatName,File output)方法需要的是一个java.awt.image.RenderedImage接口的实现类对象,例如:java.awt.image.BufferedImage是其一个实现类,并java.awt.image.RenderedImage与java.awt.Image也没有任何关系
因此会出现sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage

现在,我需要Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(500, 300, img.getColorModel(), bytePixels, 0, 500))创建的Image对象保存到本地文件系统,应该怎么解决?
请各位高手指点,很急,不胜感激,多谢了
...全文
852 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jahorn 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huntor 的回复:]

Java code
BufferedImage bi = new BufferedImage(...);
Graphic2D g2d = bi.createGraphics();
g2d.drawImage(Toolit.getDefa................);
ImageIO.write(bi,"png",new File(...));
g2d.dispose();
[/Quote]
多谢了,我也刚好想到了这种方法,多谢啊
huntor 2011-04-17
  • 打赏
  • 举报
回复
BufferedImage bi = new BufferedImage(...);
Graphic2D g2d = bi.createGraphics();
g2d.drawImage(Toolit.getDefa................);
ImageIO.write(bi,"png",new File(...));
g2d.dispose();

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧