21xrx.com
2024-11-09 00:19:01 Saturday
登录
文章检索 我的文章 写文章
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,并获取一个图像编码器。接着,我们循环压缩图片直至目标大小,并将结果输出到文件中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复