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 ImageCompressor {
// 该方法用于压缩图片,参数分别为源文件路径、目标文件路径以及缩放比例
public static void compressImage(String srcImagePath, String destImagePath, double scale) {
try {
// 读取原始图片
File srcFile = new File(srcImagePath);
BufferedImage srcImage = ImageIO.read(srcFile);
// 计算新的宽度和高度
int width = (int) (srcImage.getWidth() * scale);
int height = (int) (srcImage.getHeight() * scale);
// 创建一个新的BufferedImage对象,用于保存缩放后的图像
BufferedImage resizedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = resizedImage.createGraphics();
g2d.drawImage(srcImage.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);
g2d.dispose();
// 将缩放后的图像写入目标文件
File destFile = new File(destImagePath);
ImageIO.write(resizedImage, "jpg", destFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 示例:将图片压缩为原来的一半大小
compressImage("path/to/source/image.jpg", "path/to/destination/image.jpg", 0.5);
}
}
compressImage 方法:
srcImagePath: 源图片的文件路径。destImagePath: 压缩后图片的目标文件路径。scale: 图片缩放的比例(例如:0.5 表示压缩为原图的一半大小)。读取原始图片:
ImageIO.read() 方法读取源图片文件,并将其存储在 BufferedImage 对象中。计算新的宽度和高度:
scale,计算出新的宽度和高度。创建缩放后的图像:
BufferedImage 创建一个新的图像对象,并使用 Graphics2D 绘制缩放后的图像。保存压缩后的图片:
ImageIO.write() 方法将处理后的图像保存到指定的目标文件路径中。main 方法:
compressImage 方法将图片压缩为原来的一半大小。上一篇:java判断long是否为空
下一篇:java charat
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站