1,读取读片的地址,获取图片的Image
File file = new File("./src/reasources/logo_s.jpg");// 读入文件
Image image = ImageIO.read(file);
2,进行压缩图片
/**
* 压缩或者增大图片
* @param image 文件源
* @param w 指定宽
* @param h 指定高
* @return
*/
public static Image compressImage(Image image , int w , int h ) {
int width = image.getWidth(null); // 得到源图宽
int height = image.getHeight(null); // 得到源图长
//假如图片的长宽比例大于1,来判读以哪一个为标准压缩或者增大图片
if (width / height > w / h) {
//以宽度为标准,等比例压缩图片
h = (int) (height * w / width);
}else {
w = (int) (width * h / height);
}
// SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢
BufferedImage bufferedimage = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
bufferedimage.getGraphics().drawImage(image, 0, 0, w, h, null); // 绘制缩小后的图
return bufferedimage;
}
注意:eclipse中的使用内存,如果图片过大,会导致崩毁