Java 为什么使用ImageIO下载的文件比浏览器下载的文件小?

Java 为什么使用ImageIO下载的文件比浏览器下载的文件小?,java,image,download,image-size,Java,Image,Download,Image Size,下面的代码从指定的URL下载图像。 当从浏览器本地保存相同的图像时,它比通过编程下载的图像大约66% 虽然代码没有明确指定有关大小的任何参数,但为什么下载的文件比从浏览器下载的文件小 BufferedImage buffImage = ImageIO.read(new URL("random url to an image")); ImageIO.write(buffImage, "jpg", new File("MyAppDl.jpg")); 编辑:奇怪。。。这是不一致的;在不同的URL上,

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

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

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

编辑:奇怪。。。这是不一致的;在不同的URL上,缩略图明显更小,这只是猜测:浏览器“按原样”加载文件。。。代码将文件读入数据结构,然后再次将其写入文件。最可能的情况是,它应用的默认压缩可能高于原始使用率


如果需要原始文件,请不要使用
buffereImage
ImageIO
,而是使用普通流进行读/写。

正在解压
ImageIO
版本,并使用不同的质量设置重新压缩。如果不这样做,请使用常规的
类,这些类不处理数据,只需通过未解释的方式传递数据。

这两个文件中的哪一个已损坏?查看文件内容并告诉我们区别。一个重现问题的示例图像URL将有帮助,因为两个文件都未损坏,从表面上看,内容似乎是相同的