获取 BufferedImage outputImage 返回 图片多少kb
时间: 2023-08-25 17:13:17 浏览: 93
要获取压缩后的 `BufferedImage` 对象的大小,你可以将其转换为字节数组,并计算字节数组的长度,然后将字节数转换为KB。
以下是一个示例代码,演示如何获取压缩后的图片大小:
```java
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
public class ImageCompression {
public static void main(String[] args) {
try {
// 读取原始图片
File inputFile = new File("input.jpg");
BufferedImage inputImage = ImageIO.read(inputFile);
// 创建一个空白的缓冲图像,设置尺寸和类型
BufferedImage outputImage = new BufferedImage(inputImage.getWidth(), inputImage.getHeight(), BufferedImage.TYPE_INT_RGB);
// 创建图形上下文
Graphics2D graphics = outputImage.createGraphics();
// 使用缩放算法压缩图片
graphics.drawImage(inputImage, 0, 0, outputImage.getWidth(), outputImage.getHeight(), null);
// 将压缩后的图片转换为字节数组
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(outputImage, "jpg", baos);
baos.flush();
byte[] imageBytes = baos.toByteArray();
baos.close();
// 获取压缩后的图片大小
double fileSizeKB = imageBytes.length / 1024.0;
System.out.println("压缩后的图片大小:" + fileSizeKB + " KB");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们使用 `ByteArrayOutputStream` 将压缩后的图片写入字节数组中。然后,通过计算字节数组的长度并将其除以1024.0,我们可以将其转换为KB。最后,我们将压缩后的图片大小打印到控制台。
请确保将代码中的 `"input.jpg"` 替换为你实际的输入图片路径。
阅读全文