2012-03-21 119 views
0

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

我有一个图像大小调整到给定的宽度和高度

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中做到这一点?。一些例子将非常感激。

谢谢

+2

请澄清:您是否尝试缩小渲染图像的大小(如您在此问题的标题中所述,并且如果是这样,那么您的代码有什么问题)或文件的大小(如你在最后一行中说明)? – 2012-03-21 14:14:48

+0

减小文件大小 – Kris 2012-03-21 14:41:35

回答

1

就像一个选项 - image magic - 它也有一些Java的便利包装,所以你可以很容易地使用它。

0

只能rezise图像多次,得到下面所确定的文件大小。

1

你的问题有没有实际意义?还是仅仅是理论上的?

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