怎么把Graphics里面画好的地图,做成Image或者BufferImage,然后我的平移,放大,缩小操作就可以直接对Image这样的栅格,而不是原来的矢量操作了

解决方案 »

  1.   

    Graphics2D g = BufferImage.createGraphics();
    用g画笔画
      

  2.   

    查下API,看类MemoryImageSource的构造函数
    Image img = CreateImage(new MemoryImageSource( ));
      

  3.   

    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);
      

  4.   

    我要把Graphics画到bufferImage中。又要显示BufferImage在容器中,有点乱,关系怎么理顺啊
      

  5.   

    http://blog.csdn.net/fdgaq/archive/2009/02/22/3924132.aspx
      

  6.   

    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画在容器上
      

  7.   

    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);
    }
    不知道哪里错,还是显示的是全白的
      

  8.   

    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); 

    再试试
      

  9.   

    就是说您现在在一个JPanel子对象中画出了内容  画的时候没有考虑到要保存  画完后想保存为JPG文件 但是不知道怎么获取已经画好的Graphics转换为BufferedImage的内容