需要对图片进行处理,使之能够适当的显示在画面中。
找到一些资料后,处理也比较简单
代码:
/*
* 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;
}