下面的代码从指定的 URL 下载图像。 当从浏览器本地保存相同的图像时,它比以编程方式下载的图像大大约 66%。
虽然代码中没有明确指定任何大小参数,但是为什么下载的文件比从浏览器下载的文件小呢?
BufferedImage buffImage = ImageIO.read(new URL("random url to an image"));
ImageIO.write(buffImage, "jpg", new File("MyAppDl.jpg"));
编辑:奇怪......它不一致;在不同的 URL 上,缩略图明显较小
最佳答案
只是猜测:浏览器“按原样”加载文件...您的代码将文件读入数据结构,然后再次将其写入文件。最有可能的是它应用了默认压缩,该压缩可能高于原始使用的比率。
如果您想要原始文件,请不要使用 BufferedImage
和 ImageIO
,而是使用普通流读取/写入它。
关于java - 为什么使用 ImageIO 下载的文件比浏览器下载的文件小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5680153/