减少java中图像的大小

时间:2012-03-21 14:12:18

标签: java image-manipulation

我想确保我的应用程序中的图像不超过200x200像素,图像大小不超过150 kB。例如,如果图像的文件大小超过150 kB,我需要将其设为150 kB。图像可以是jpeg,png等类型。

我有以下代码用于将图像调整为给定的宽度和高度

private BufferedImage resize(BufferedImage img, int newW, int newH) {
        int w = img.getWidth();
        int h = img.getHeight();
        BufferedImage dimg = new BufferedImage(newW, newH, img.getType());
        Graphics2D g = dimg.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);
        g.dispose();
        return dimg;
    }

但我不确定如何将文件大小减小到150 kB。如何在java中做到这一点?。一些例子真的很感激。

谢谢

3 个答案:

答案 0 :(得分:1)

作为一个选项 - image magic - 它也有一些Java的便利包装器,因此您可以轻松使用它。

答案 1 :(得分:1)

您的问题是否具有实际意义,还是仅仅是理论上的?

200x200像素的图像,颜色深度为24位,未压缩需要117kB。如果你使用任何合理的JPEG编码器,这样的图像也不会超过150kB。

答案 2 :(得分:0)

您只能多次调整图像大小,以低于确定的文件大小。