当前位置: 代码迷 >> J2SE >> scaledImg = (BufferedImage)tt.getScaledInstance(width, height,Image.SCALE_FAST); 返回值说不相配,这是如何回事
  详细解决方案

scaledImg = (BufferedImage)tt.getScaledInstance(width, height,Image.SCALE_FAST); 返回值说不相配,这是如何回事

热度:485   发布时间:2016-04-24 12:42:03.0
scaledImg = (BufferedImage)tt.getScaledInstance(width, height,Image.SCALE_FAST); 返回值说不相配,这是怎么回事?
scaledImg 是 BufferedImage类型的。。。

------解决方案--------------------
因为你的tt.getScaledInstance(width, height,Image.SCALE_FAST);返回的是ToolkitImage类型,当然不能转化为BufferedImage了。
------解决方案--------------------
你的tt对象估计是java.awt.Image对象,所以才会返回ToolkitImage类型。给你段代码看看
Java code
  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();  }  }
  相关解决方案