2014-09-05 110 views
0

请帮有人为如何减少在Java中图像的大小如何减少在Java中图像的大小

我的问题是

我以一个图像作为输入Java程序,并采取输出如.BMP图像

为创造新的形象,我使用下面的代码

for (int i = 0; i < width; i++)  
     {  
       for (int j = 0; j < height; j++) 
       { 
       Color c = new Color(color2[i][j], color2[i][j], color2[i][j]); 
       image1.setRGB(i, j, c.getRGB()); 
       }  
      } 
ImageIO.write(image1, "bmp", new File("hh5_binary_Adjust.bmp")); 

但是,如果使用上面的代码我得到6.5 MB大小的一个A4大小的纸张 因此,请帮助我获得图像的最小长度,而无需修改文件扩展名为bmp

+0

[Resize a bitmap]的可能重复(http://stackoverflow.com/questions/9583757/resizing-a-bitmap) – DavidPostill 2014-09-05 14:59:13

+2

您不能奇迹般地压缩不支持压缩的格式。使用PNG。 – SLaks 2014-09-05 14:59:25

+0

@DavidPostill我认为你提供的是缩放图像,这是关于降低图像的大小(内存)。 – Hristo 2014-09-05 15:01:40

回答

0

如果您想降低分辨率,没有一种好方法可以做到这一点,并获得非常清晰的输出图像使用外部库。我建议imgscalr。我已经有了很棒的结果。

但请注意,您拥有大文件大小的主要原因是您使用BMP作为输出格式!如果你改变了这一点,你将会轻而易举地大幅减少文件大小。我会用JPG来拍照,或者用PNG来拍照。

ImageIO类将保存到任何一个没有问题的人。