scaledImg 是 BufferedImage类型的

解决方案 »

  1.   

    因为你的tt.getScaledInstance(width, height,Image.SCALE_FAST);返回的是ToolkitImage类型,当然不能转化为BufferedImage了。
      

  2.   

    你的tt对象估计是java.awt.Image对象,所以才会返回ToolkitImage类型。给你段代码看看  import java.io.File;
      import java.io.FileOutputStream;
      import java.awt.Graphics;
      import java.awt.Image;
      import java.awt.image.BufferedImage;
      
      import com.sun.image.codec.jpeg.JPEGCodec;
      import com.sun.image.codec.jpeg.JPEGImageEncoder;
      
      public class JpgTest {
      
      public void JpgTset() throws Exception{
      File _file = new File("/Order005-0001.jpg"); //读入文件
      Image src = javax.imageio.ImageIO.read(_file); //构造Image对象
      int wideth=src.getWidth(null); //得到源图宽
      int height=src.getHeight(null); //得到源图长
      BufferedImage tag = new BufferedImage(wideth/2,height/2,BufferedImage.TYPE_INT_RGB);
      tag.getGraphics().drawImage(src,0,0,wideth/2,height/2,null); //绘制缩小后的图
      FileOutputStream out=new FileOutputStream("newfile.jpg"); //输出到文件流
      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
      encoder.encode(tag); //近JPEG编码
      //System.out.print(width+"*"+height); 
      out.close();
      }
      }