Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小
- 工作小总结&小工具类
- 时间:2023-11-10 15:15
- 2317人已阅读
简介
需求:Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小代码实现:import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java
🔔🔔好消息!好消息!🔔🔔
有需要的朋友👉:微信号
需求:
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();
}
}
}