21xrx.com
2025-03-20 05:46:59 Thursday
文章检索 我的文章 写文章
Java如何实现图片压缩到指定大小?
2023-06-13 02:17:28 深夜i     --     --
Java 图片压缩 指定大小

如果你经常处理图片,那么你可能需要将图片压缩到指定大小。在Java中,我们可以使用ImageIO和ImageWriter来实现图片的压缩。下面是一个简单的代码示例:

File input = new File("input.jpg");
File output = new File("output.jpg");
BufferedImage image = ImageIO.read(input);
int targetSize = 1024; // 指定目标大小为1KB
// 获取图像编码器
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(1.0f);
// 循环压缩图片直至目标大小
float quality = 1.0f;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
do {
  baos.reset();
  writer.setOutput(ImageIO.createImageOutputStream(baos));
  writer.write(null, new IIOImage(image, null, null), param);
  quality -= 0.05f;
} while (baos.size() > targetSize && quality > 0);
// 输出压缩后的图片
FileOutputStream fos = new FileOutputStream(output);
fos.write(baos.toByteArray());
fos.close();

上面的代码中,我们首先读取输入图片,然后指定目标大小为1KB,并获取一个图像编码器。接着,我们循环压缩图片直至目标大小,并将结果输出到文件中。

  
  

评论区

    相似文章