我想确保我的应用程序中的图像不超过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中做到这一点?。一些例子真的很感激。
谢谢
答案 0 :(得分:1)
作为一个选项 - image magic - 它也有一些Java的便利包装器,因此您可以轻松使用它。
答案 1 :(得分:1)
您的问题是否具有实际意义,还是仅仅是理论上的?
200x200像素的图像,颜色深度为24位,未压缩需要117kB。如果你使用任何合理的JPEG编码器,这样的图像也不会超过150kB。
答案 2 :(得分:0)
您只能多次调整图像大小,以低于确定的文件大小。