序
这里展示一下如何对图片进行压缩和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; }