import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageHandle {
/**
* 等比压缩图片的方法
*
* @param srcURL
* 原图片路径
* @param deskURL
* 目标图片路径
* @param width
* 生成图片的宽度
* @throws Exception
*/
public void getCompressJPG(String srcURL, String outputPicName, int width,
int height) {
double ratio = 1.0;
double widthRatio = 1;
double heightRatio = 1;
File inputFile = new File(srcURL);
try {
BufferedImage Bi = ImageIO.read(inputFile);
int imageWidth = Bi.getWidth();
int imageHeight = Bi.getHeight();
widthRatio = imageWidth / (width * 1.0);
heightRatio = imageHeight / (height * 1.0);
if (widthRatio < heightRatio) {
ratio = heightRatio;
} else {
ratio = widthRatio;
}
int widthdist = (int) Math.floor(Bi.getWidth() / ratio);
int heightdist = (int) Math.floor(Bi.getHeight() / ratio);
BufferedImage tag = new BufferedImage(widthdist, heightdist,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(
Bi.getScaledInstance(widthdist, heightdist,
BufferedImage.SCALE_SMOOTH), 0, 0, null);
File littleFile = new File(outputPicName);
ImageIO.write(tag, "JPEG", littleFile);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
ImageHandle imggeHandle = new ImageHandle();
String srcURL = "D:/aa.jpg";
String outPutPicName = "D:/cc.jpg";
int width = 400;
int height = 500;
imggeHandle.getCompressJPG(srcURL, outPutPicName, width, height);
}
}