Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小

Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小_第1张图片

需求:

Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小

代码实现:

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ImageProcessor {

    public static void main(String[] args) {
        String inputImagePath = "input.jpg"; // 输入图片路径
        String outputImagePath = "output.jpg"; // 输出图片路径
        int targetWidth = 1260;
        int targetHeight = 945;

        try {
            BufferedImage inputImage = ImageIO.read(new File(inputImagePath));

            // 获取原始图片的尺寸
            int originalWidth = inputImage.getWidth();
            int originalHeight = inputImage.getHeight();

            // 创建一个新的 BufferedImage,用于存放处理后的图片
            BufferedImage outputImage = new BufferedImage(targetWidth, targetHeight, inputImage.getType());

            // 创建一个 Graphics2D 对象,用于绘制新图片
            Graphics2D graphics = outputImage.createGraphics();

            // 如果原始图片尺寸大于目标尺寸,则进行压缩
            if (originalWidth > targetWidth || originalHeight > targetHeight) {
                Image scaledImage = inputImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_SMOOTH);
                graphics.drawImage(scaledImage, 0, 0, null);
            } else {
                // 如果原始图片尺寸小于目标尺寸,则进行拉伸
                graphics.drawImage(inputImage, 0, 0, targetWidth, targetHeight, null);
            }

            // 释放资源
            graphics.dispose();

            // 保存处理后的图片
            ImageIO.write(outputImage, "jpg", new File(outputImagePath));

            System.out.println("图片处理完成。");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(凯哥Java,java,python,开发语言)