private File compressed(Image image, RCompress compress, String name) throws IOException { if (null == image || null == compress) { return null; } BufferedImage buffer = new BufferedImage(compress.getWidth(), compress.getHeight(), BufferedImage.TYPE_INT_RGB); // Image.SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢 if (buffer .getGraphics() .drawImage( image.getScaledInstance(compress.getWidth(), compress.getHeight(), Image.SCALE_SMOOTH), 0, 0, null)) { return null; } File file = new File(name); return ImageIO.write(buffer, compress.getFormat(), file) ? file : null; }