JAVA中图片文件的缩放
发表于:2007-07-04来源:作者:点击数:
标签:
需要对图片进行处理,使之能够适当的显示在画面中。找到一些资料后,处理也比较简单代码: /* * AndyChen(andy.chen.sh@gmail.com) * **/ public static Icon getFixedBoundIcon(String filePath, int height, int width) throws Exception{ double Ratio=0.0
需要对图片进行处理,使之能够适当的显示在画面中。找到一些资料后,处理也比较简单代码: /* * AndyChen(andy.chen.sh@gmail.com) * **/ public static Icon getFixedBoundIcon(String filePath, int height, int width) throws Exception{ double Ratio=0.0; //缩放比例 File F = new File(filePath); if (!F.isFile()) throw new Exception(F+" is not image file error in getFixedBoundIcon!"); Icon ret = new ImageIcon(filePath); BufferedImage Bi = ImageIO.read(F); if ((Bi.getHeight()>height) || (Bi.getWidth()>width)){ if (Bi.getHeight()>Bi.getWidth()){ Ratio = (new Integer(height)).doubleValue() /Bi.getHeight(); } else { Ratio = (new Integer(width)).doubleValue()/Bi.getWidth(); } File ThF = new File(filePath+"_"+height +"_"+width); Image Itemp = Bi.getScaledInstance (width,height,Bi.SCALE_SMOOTH); AffineTransformOp op = new AffineTransformOp(AffineTransform.getScaleInstance(Ratio, Ratio), null); Itemp = op.filter(Bi, null); try { ImageIO.write((BufferedImage)Itemp, "jpg", ThF); ret = new ImageIcon(ThF.getPath()); }catch (Exception ex) { } } return ret; }
原文转自:http://www.ltesting.net