java 压缩图片质量至100KB以内
要将图片压缩至100KB以内,可以使用Java的图像处理库,如ImageIO和BufferedImage。下面是一个示例代码,演示如何将图片压缩至100KB以内:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageCompressor {
public static void main(String[] args) {
try {
// 读取原始图片文件
File originalImageFile = new File("original.jpg");
BufferedImage originalImage = ImageIO.read(originalImageFile);
// 计算原始图片的尺寸
int originalWidth = originalImage.getWidth();
int originalHeight = originalImage.getHeight();
// 计算压缩比例
double compressionRatio = 1;
// 如果原始图片大小超过目标大小,则进行压缩
if (originalImageFile.length() > 100 * 1024) {
compressionRatio = (100.0 * 1024) / originalImageFile.length();
}
// 计算压缩后的图片尺寸
int compressedWidth = (int) (originalWidth * compressionRatio);
int compressedHeight = (int) (originalHeight * compressionRatio);
// 创建压缩后的图片对象
BufferedImage compressedImage = new BufferedImage(compressedWidth, compressedHeight, originalImage.getType());
// 绘制压缩后的图片
Graphics2D graphics = compressedImage.createGraphics();
graphics.drawImage(originalImage, 0, 0, compressedWidth, compressedHeight, null);
graphics.dispose();
// 输出压缩后的图片文件
File compressedImageFile = new File("compressed.jpg");
ImageIO.write(compressedImage, "jpg", compressedImageFile);
System.out.println("图片压缩完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
该示例代码会读取名为"original.jpg"的原始图片文件,并将其压缩至100KB以内,最终输出为名为"compressed.jpg"的压缩后的图片文件。
请注意,压缩比例的计算方式是通过目标大小除以原始大小,然后将该比例应用于原始图片的尺寸。如果原始图片本身已经小于目标大小,则不会进行压缩
原文地址: https://www.cveoy.top/t/topic/izzn 著作权归作者所有。请勿转载和采集!