可以使用Java的ImageIO类来进行图片压缩。
下面是一个示例代码:

import java.awt.*;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
 
public class ImageCompressor {
    public static void main(String[] args) throws IOException {
        // 读取原始图片文件
        File input = new File("input.jpg");
        
        // 创建输入流对象
        BufferedImage image = ImageIO.read(input);
        
        // 设置目标大小(这里将图像宽度限制为800)
        int targetWidth = 800;
        double scaleFactor = (double)targetWidth / image.getWidth();
        
        // 计算新的高度
        int targetHeight = (int)(scaleFactor * image.getHeight());
        
        // 创建缩放后的图像对象
        Image resizedImage = image.getScaledInstance(targetWidth, targetHeight, Image.SCALE_DEFAULT);
        
        // 创建输出流对象
        File output = new File("output.jpg");
        
        // 写入缩放后的图像到输出文件中
        ImageIO.write((BufferedImage)resizedImage, "jpeg", output);
        
        System.out.println("图片已成功压缩!");
    }
}