import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.UUID; /** * 图片压缩 */ public class ImageCompressUtil { private static String path = "C:\\Users\\Administrator\\Pictures\\"; public static void main(String[] args) throws IOException { File imageFile = new File(path + "反.jpg"); BufferedImage inputImage = ImageIO.read(imageFile); //通过比例压缩 float scale = 0.5f; BufferedImage outputImage = compress(inputImage, scale); //图片输出路径,以及图片名 File outputFile = new File(path + UUID.randomUUID() + "." + getImageType(inputImage.getType())); ImageIO.write(outputImage, getImageType(inputImage.getType()), outputFile); } /** * 压缩图片 */ public static BufferedImage compress(BufferedImage inputImage, float scale) { //压缩之后的长度和宽度 int outputHeight = (int) (inputImage.getHeight() * scale); int outputWidth = (int) (inputImage.getWidth() * scale); BufferedImage outputImage = new BufferedImage(outputWidth, outputHeight, inputImage.getType()); outputImage.getGraphics().drawImage( inputImage.getScaledInstance(outputWidth, outputHeight, Image.SCALE_SMOOTH), 0, 0, null); return outputImage; } public static String getImageType(int imageType) { switch (imageType) { // case 5: // return "jpg"; case 6: return "png"; case 13: return "gif"; default: return "jpg"; } }