序
这里展示一下如何对图片进行压缩和resize。
压缩
public static boolean compress(String src,String to, float quality) {
boolean rs = true;
// Build param
JPEGEncodeParam param = null;
// Build encoder
File destination = new File(to);
FileOutputStream os = null;
try {
BufferedImage image = ImageIO.read(new File(src));
param = JPEGCodec.getDefaultJPEGEncodeParam(image);
param.setQuality(quality, false);
os = FileUtils.openOutputStream(destination);
JPEGImageEncoder encoder;
if (param != null) {
encoder = JPEGCodec.createJPEGEncoder(os, param);
} else {
return false;
}
encoder.encode(image);
} catch(Exception e){
e.printStackTrace();
rs = false;
}finally {
IOUtils.closeQuietly(os);
}
return rs;
}
resize
public static boolean resize(String src,String to,int newWidth,int newHeight) {
try {
File srcFile = new File(src);
File toFile = new File(to);
BufferedImage img = ImageIO.read(srcFile);
int w = img.getWidth();
int h = img.getHeight();
BufferedImage dimg = new BufferedImage(newWidth, newHeight, img.getType());
Graphics2D g = dimg.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(img, 0, 0, newWidth, newHeight, 0, 0, w, h, null);
g.dispose();
ImageIO.write(dimg, "jpg", toFile);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}