public void saveImageAsFormat(File fromFile,int targetW,String imgType,String toSaveFile) throws IOException{
BufferedImage srcImage = null,tgtImage=null;
srcImage = ImageIO.read(fromFile);
int type = srcImage.getType();
int targetH=0;
double sx = (double) targetW / srcImage.getWidth();
targetH = (int) (sx * srcImage.getHeight());//获得压缩图片的高度
if (type == BufferedImage.TYPE_CUSTOM) {
ColorModel cm = srcImage.getColorModel();
WritableRaster raster = cm.createCompatibleWritableRaster(targetW,targetH);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
tgtImage = new BufferedImage(cm, raster, alphaPremultiplied, null);
} else {
tgtImage = new BufferedImage(targetW, targetH, type);
}
Graphics2D g = tgtImage.createGraphics();
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.drawRenderedImage(srcImage, AffineTransform.getScaleInstance(sx, sx));
g.dispose();
File saveFile = new File(toSaveFile);
ImageIO.write(tgtImage, imgType, saveFile);
}