Java如何压缩照片为指定像素大小使用函数返回一个BufferedImage
要压缩照片为指定像素大小,可以使用Java的图像处理库ImageIO和BufferedImage。下面是一个示例代码,可以将照片压缩为指定的像素大小,并返回一个BufferedImage对象:
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 BufferedImage compressImage(File inputFile, int targetWidth, int targetHeight) {
try {
// 读取原始图片
BufferedImage originalImage = ImageIO.read(inputFile);
// 创建目标大小的缩略图
BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = resizedImage.createGraphics();
graphics2D.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null);
graphics2D.dispose();
return resizedImage;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
File inputFile = new File("input.jpg"); // 输入照片的路径
int targetWidth = 800; // 目标宽度
int targetHeight = 600; // 目标高度
BufferedImage compressedImage = compressImage(inputFile, targetWidth, targetHeight);
// 保存压缩后的图片
try {
ImageIO.write(compressedImage, "jpg", new File("output.jpg")); // 输出照片的路径
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的代码中,compressImage函数接受一个File对象、目标宽度和目标高度作为参数。它首先读取原始图片,然后创建一个目标大小的缩略图,并将原始图片绘制到缩略图上。最后,它返回缩略图的BufferedImage对象。
在main函数中,我们可以指定输入照片的路径、目标宽度和目标高度。通过调用compressImage函数,我们可以得到压缩后的图片,并将其保存到指定路径中
原文地址: https://www.cveoy.top/t/topic/iMjK 著作权归作者所有。请勿转载和采集!