Image theImg = ...;BufferedImage bufImg = new BufferedImage(theImg.getWidth(null), theImg.getHeight(null), BufferedImage.TYPE_INT_RGB);img.getGraphics().drawImage(theImg, 0, 0, null);FileOutputStream fos = new FileOutputStream("test1.jpg");
com.sun.image.codec.jpeg.JPEGImageEncoder encoder = com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(fos);
encoder.encode(bufImg);
fos.close();

解决方案 »

  1.   

    这句
    img.getGraphics().drawImage(theImg, 0, 0, null); 
    应该是:
    bufImg.getGraphics().drawImage(theImg, 0, 0, null);
      

  2.   

    来晚了。
    cbhyk 兄厉害
      

  3.   

    import java.io.*;
    import java.awt.image.*;
    import java.awt.*;
    import javax.imageio.*;
    import javax.swing.*;class A{
        public static void main(String[] args)
            throws Exception{        Image img=new ImageIcon("nh.gif").getImage();
        
            int width = img.getWidth(null);
            int height = img.getHeight(null);
            BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
            Graphics g = bi.getGraphics();
            g.drawImage(img,0,0,width,height,null);
            g.dispose();
            File f = new File("myimage.jpg");
            ImageIO.write(bi, "jpg", f);
        }
    }