import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ImageCompressor {
// 压缩图片并保存到指定路径
public static void compressImage(String inputFilePath, String outputFilePath, int targetWidth, int targetHeight) {
try {
// 读取原始图片
File inputFile = new File(inputFilePath);
BufferedImage originalImage = ImageIO.read(inputFile);
// 创建一个具有指定宽度和高度的缓冲图像
BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, originalImage.getType());
Graphics2D g2d = resizedImage.createGraphics();
// 设置抗锯齿
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null);
g2d.dispose();
// 将压缩后的图片写入文件
File outputFile = new File(outputFilePath);
ImageIO.write(resizedImage, "jpg", outputFile);
System.out.println("图片压缩完成!");
} catch (IOException e) {
System.out.println("图片压缩失败: " + e.getMessage());
}
}
public static void main(String[] args) {
// 示例调用
compressImage("input.jpg", "output.jpg", 800, 600);
}
}
导入必要的包:
javax.imageio.ImageIO
:用于读取和写入图像。java.awt.*
和 java.awt.image.BufferedImage
:用于处理图像。java.io.File
和 java.io.IOException
:用于文件操作和异常处理。compressImage 方法:
ImageIO.read
读取原始图片。BufferedImage
对象,设置其宽度和高度为目标尺寸。Graphics2D
绘制并调整原始图片的大小。ImageIO.write
将压缩后的图片保存到指定路径。main 方法:
input.jpg
压缩为 800x600 的 output.jpg
。希望这段代码对你有帮助!
上一篇:java object
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站