是用java程序将它保存起来
还是将你程序执行过程中,把这个图片抓下来?

解决方案 »

  1.   

    应该是先创建BufferedImage,然后getGraphics(),在调用panel的paint方法,但记得传的参数应为你从image得到的graphics.
      

  2.   

    gularess(无吃哪拉) 
    能不能给个例子?
      

  3.   

    回复人: faintyzxm(faint)
    用程序把他保存成jpg文件
      

  4.   

    ByteArrayOutputStream out = new ByteArrayOutputStream();
        Dimension d = new Dimension(400,300);
        BufferedImage image = new BufferedImage(d.width , d.height , BufferedImage.TYPE_INT_RGB);    Graphics2D g2 = (Graphics2D)image.getGraphics();
        g2.setColor(Color.white );
        g2.fillRect(0,0,d.width,d.height);
        panel.paint(g2);
        JPEGImageEncoder jpeg= JPEGCodec.createJPEGEncoder(out);
        try{jpeg.encode(image);    
         ByteByteArrayOutputStream out = (ByteArrayOutputStream)jpeg.getOutputStream();
         FileOutputStream fout = new FileOutputStream("d:/test.jpg");
    fout.write(out.toByteArray());
      fout.flush();
      fout.close();}catch(Exception e){}
      

  5.   

    又错了,应该把第二个ByteByteArrayOutputStream去掉。
      

  6.   

    gularess(无吃哪拉)
    再问一下JPEGImageEncoder在哪一个包里面?
    收到后后马上给分
      

  7.   

    gularess(无吃哪拉)
    不存在文件的时候,
    怎么通过一个graphics 得到一个image 或者bufferedimage呀?
      

  8.   

    java.awt.Robot robot = new java.awt.Robot();
    Rectangle rect = panel.getBounds(null);
    BufferedImage bufImage = robot.createScreenCapture(rect);
    可以得到
      

  9.   

    fightboy(樱桃小蚊子) :
    如果用robot的话,只能得到屏幕上看得见的部分,看不见的部分就不可以了
    对不对?
    我想用component.createimage()得到,但是得到以后保存出来的东西为0字节
    郁闷中
      

  10.   

    对于jdk1。3http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/Encode.doc.html对于jdk1。4http://java.sun.com/j2se/1.4/docs/guide/imageio/spec/apps.fm4.html我还没试出来,结果出来了可否给告知一下!
    (注意写了文件要flush并close)