需要对图片进行处理,使之能够适当的显示在画面中。
找到一些资料后,处理也比较简单代码:
/*
* AndyChen(andy.chen.sh@gmail.com)
*
**/
public static Icon getFixedBoundIcon(File imageFile, int height, int width) throws Exception{
double Ratio=0.0;
if (imageFile == null || !imageFile.isFile())
throw new Exception(imageFile+" is not image file error in getFixedBoundIcon!");
String filePath = imageFile.getPath();
Icon ret = new ImageIcon(filePath);
BufferedImage Bi = ImageIO.read(imageFile);
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;
}
找到一些资料后,处理也比较简单代码:
/*
* AndyChen(andy.chen.sh@gmail.com)
*
**/
public static Icon getFixedBoundIcon(File imageFile, int height, int width) throws Exception{
double Ratio=0.0;
if (imageFile == null || !imageFile.isFile())
throw new Exception(imageFile+" is not image file error in getFixedBoundIcon!");
String filePath = imageFile.getPath();
Icon ret = new ImageIcon(filePath);
BufferedImage Bi = ImageIO.read(imageFile);
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;
}