如何实现Java压缩图片 BufferedImage

流程图

flowchart TD
    Start[开始]
    Step1[加载原始图片]
    Step2[设置压缩比例]
    Step3[创建目标图片]
    Step4[压缩图片]
    End[结束]

    Start-->Step1
    Step1-->Step2
    Step2-->Step3
    Step3-->Step4
    Step4-->End

任务步骤

步骤 描述 代码示例
1 加载原始图片 BufferedImage originalImage = ImageIO.read(new File("original.jpg"));
2 设置压缩比例 double scaleFactor = 0.5; // 压缩比例为50%
3 创建目标图片 int newWidth = (int) (originalImage.getWidth() * scaleFactor); <br> int newHeight = (int) (originalImage.getHeight() * scaleFactor); <br> BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, originalImage.getType());
4 压缩图片 Graphics2D g = resizedImage.createGraphics(); <br> g.drawImage(originalImage, 0, 0, newWidth, newHeight, null); <br> g.dispose();

代码示例

// 加载原始图片
BufferedImage originalImage = ImageIO.read(new File("original.jpg"));

// 设置压缩比例
double scaleFactor = 0.5; // 压缩比例为50%

// 创建目标图片
int newWidth = (int) (originalImage.getWidth() * scaleFactor);
int newHeight = (int) (originalImage.getHeight() * scaleFactor);
BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, originalImage.getType());

// 压缩图片
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, newWidth, newHeight, null);
g.dispose();

在上面的代码示例中,首先我们加载了原始图片,然后设置了压缩比例为50%。接着我们创建了一个目标图片,根据设置的压缩比例计算出新的宽度和高度。最后,我们使用Graphics2D类将原始图片绘制到目标图片上,实现了图片的压缩。

希望通过这篇文章,你能够掌握如何在Java中压缩图片使用BufferedImage这个类。祝你学习顺利!