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

问题描述

| 下面的代码从指定的URL下载图像。 当从浏览器本地保存同一图像时,它比以编程方式下载的图像大得多,约为66%。 尽管代码未明确指定有关大小的任何参数,但是为什么下载的文件比从浏览器下载的文件小?
BufferedImage buffImage = ImageIO.read(new URL(\"random url to an image\"));
ImageIO.write(buffImage,\"jpg\",new File(\"MyAppDl.jpg\"));
编辑:很奇怪...不一致在不同的URL上,缩略图明显较小     

解决方法

只是一个猜测:浏览器“按原样”加载文件...您的代码将文件读取到数据结构中,然后再次将其写入文件中。它很可能会应用默认压缩,该压缩可能会高于原始使用比率。 如果要原始文件,请不要使用
BufferedImage
ImageIO
,而应使用普通流对其进行读写。     ,
ImageIO
版本正在解压缩,并以其他质量设置重新压缩。不要这样做,请使用不处理数据的常规
Stream
类,而只是将其传递给未解释的数据。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...