怎么把Canvas 里面地图像 保存成一个图像文件?比方说jpg!

解决方案 »

  1.   

    没照你的这种思路做过, 或者你可以改一下试试:
    生成一个BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);在JPanel的
    protected void paintComponent(Graphics g) {
            super.paintComponent(g);        Graphics2D g2d = bimg.createGraphics();
            // 把你在Canvas中画图的代码用这个g2d画出来, 直接用如g2d.drawLine(..), g2d.drawRect(....)        // 把bimg画到屏幕上
            g.drawImage(bimg, 0, 0, null);
    }
    // 最后可以把bimg保存为如jpg格式,
    ImageIO.write(bimg, ".jpg", fileName);你试试, ImageIO.write中的那个.jpg的点我不知道要不要, 因为长时间不没用这种细节已经记得不是很清楚了, 不过很容易试出来的。
      

  2.   

    提示一下,上面的这种绘制方式也是自己实现双缓冲的方法, 在以前的Panel中画图实现双缓冲就可以用上面的这种方法, 使用运动的图像不会闪烁。