如何把Graphics画好的图像做成BufferImage

zjjh8877227 2009-12-27 12:42:50
怎么把Graphics里面画好的地图,做成Image或者BufferImage,然后我的平移,放大,缩小操作就可以直接对Image这样的栅格,而不是原来的矢量操作了
...全文
243 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
_chenh 2012-07-08
  • 打赏
  • 举报
回复
就是说您现在在一个JPanel子对象中画出了内容 画的时候没有考虑到要保存 画完后想保存为JPG文件 但是不知道怎么获取已经画好的Graphics转换为BufferedImage的内容
YBBPS1109 2009-12-27
  • 打赏
  • 举报
回复
Graphics2D g = BufferImage.createGraphics();
用g画笔画
zjjh8877227 2009-12-27
  • 打赏
  • 举报
回复
呵呵,我刚才和你改的一样,成功了
YBBPS1109 2009-12-27
  • 打赏
  • 举报
回复
public void paint(Graphics g){
Graphics2D g2=(Graphics2D)g;
int w=org.zhou.map.MapFrame.DEFAULT_WIDTH;
int h=org.zhou.map.MapFrame.DEFAULT_HEIGHT;
BufferedImage bufimg=(BufferedImage)createImage(w, h);
Graphics gb=bufimg.createGraphics();
gb.setBackground(Color.WHITE);
work.drawWork(g2,dcr);
g2.drawImage(bufimg, 0, 0,null);
}
再试试
zjjh8877227 2009-12-27
  • 打赏
  • 举报
回复
public void paint(Graphics g){
Graphics2D g2=(Graphics2D)g;
int w=org.zhou.map.MapFrame.DEFAULT_WIDTH;
int h=org.zhou.map.MapFrame.DEFAULT_HEIGHT;
BufferedImage bufimg=(BufferedImage)createImage(w, h);
g2=bufimg.createGraphics();//这个照理应该是利用g2画笔画到BufferImage上
g2.setBackground(Color.WHITE);
work.drawWork(g2,dcr);//我把画图的功能下放到点,线,面对象中了
Graphics gb=bufimg.getGraphics();//新的画笔把图像画到JPanel上
gb.drawImage(bufimg, 0, 0,null);
}
不知道哪里错,还是显示的是全白的
YBBPS1109 2009-12-27
  • 打赏
  • 举报
回复
BufferedImage bi = (BufferedImage)createImage(w, h);
Graphics big = bi.createGraphics();
// draw somthing with big
g.drawImage(bi, 0, 0, this);

big是BufferedImage画笔,画在BufferedImage上;
g是容器画笔,把BufferedImage画在容器上
YBBPS1109 2009-12-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/fdgaq/archive/2009/02/22/3924132.aspx
zjjh8877227 2009-12-27
  • 打赏
  • 举报
回复
我要把Graphics画到bufferImage中。又要显示BufferImage在容器中,有点乱,关系怎么理顺啊
zjjh8877227 2009-12-27
  • 打赏
  • 举报
回复
Graphics2D g = BufferImage.createGraphics(); 其中createGraphics()这个方法就是把图形绘制到BufferImage中,但是为什么之后g2.drawOval(100,100,100,100);却还是画不出图像呢
int imgWidth=org.zhou.map.MapFrame.DEFAULT_WIDTH;
int imgHeight = org.zhou.map.MapFrame.DEFAULT_HEIGHT;
Dimension size = new Dimension(imgWidth,imgHeight);
BufferedImage bufimg = new BufferedImage(size.width,size.height,BufferedImage.TYPE_INT_RGB);
Graphics2D g2=(Graphics2D)g;
g2=bufimg.createGraphics();
g2.setBackground(Color.WHITE);
g2.drawOval(100, 100, 100, 100);
wenzheng38 2009-12-27
  • 打赏
  • 举报
回复
查下API,看类MemoryImageSource的构造函数
Image img = CreateImage(new MemoryImageSource( ));
zjjh8877227 2009-12-27
  • 打赏
  • 举报
回复
能否说清楚点啊

62,616

社区成员

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

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