import java.io.File;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.awt.image.AffineTransformOp;
import javax.imageio.ImageIO;
import java.awt.geom.AffineTransform;
public class ImageFormat {
public
String fromdir;
public
String todir;
public
String imgfile;
public
String sysimgfile;
public
ImageFormat() {
}
public
ImageFormat(String fromdir, String todir, String imgfile,
String sysimgfile) {
this.fromdir = fromdir;
this.todir = todir;
this.imgfile = imgfile;
this.sysimgfile = sysimgfile;
}
public
boolean isJpg(String f) {
boolean is = false;
if (f.endsWith("jpg") || f.endsWith("JPG")) {
is = true;
} else {
is = false;
}
;
return is;
}
public
boolean change(int height, int width) throws Exception {
int h = height;
int w = width;
// ext是图片的格式
gif JPG 或png
String ext = "";
double Ratio = 0.0;
System.out.println(width);
File F = new File(fromdir + imgfile);
if (!F.isFile())
throw new Exception(F
+ " is not image file error in CreateThumbnail!");
if (isJpg(imgfile)) {
ext = "jpg";
} else {
ext = "png";
}
File ThF = new File(todir, sysimgfile);
BufferedImage Bi = ImageIO.read(F);
Image Itemp = Bi.getScaledInstance(h, w,
BufferedImage.SCALE_SMOOTH);
if (Bi.getWidth() > w) {
Ratio = (float) w / Bi.getWidth();
} else {
Ratio = 1;
}
AffineTransformOp op = new
AffineTransformOp(AffineTransform.getScaleInstance(Ratio, Ratio),
null);
Itemp = op.filter(Bi, null);
try {
ImageIO.write((BufferedImage) Itemp, ext, ThF);
} catch (Exception ex) {
throw new Exception(" ImageIo.write error in CreatThum.: "
+ ex.getMessage());
}
return (true);
}
public
static void main(String arg[]) {
String pic = "111.jpg";
String path = "D:/";
String newPic = "222.jpg";
ImageFormat im = new ImageFormat(path, path, pic, newPic);
try {
im.change(300, 520);
} catch (Exception e) {
e.printStackTrace();
}
}
}