2

下面的代码从指定的 URL 下载图像。当相同的图像从浏览器本地保存时,它比以编程方式下载的图像大大约 66%。

虽然代码没有明确指定大小的任何参数,但为什么下载的文件比从浏览器下载的要小?

BufferedImage buffImage = ImageIO.read(new URL("random url to an image"));
ImageIO.write(buffImage, "jpg", new File("MyAppDl.jpg"));

编辑:很奇怪……这并不一致;在不同的 URL 上,缩略图明显更小

4

2 回答 2

3

只是一个猜测:浏览器“按原样”加载文件......您的代码将文件读入数据结构,然后将其再次写入文件。很可能它应用了可能高于原始使用比率的默认压缩。

如果您想要原始文件,请不要使用BufferedImageImageIO而是使用普通流读取/写入它。

于 2011-04-15T17:22:54.600 回答
2

ImageIO版本正在解压缩并使用不同的质量设置重新压缩。不要这样做,使用Stream不操纵数据的常规类,只是通过未解释的方式传递它。

于 2011-04-15T17:29:22.637 回答