为什么用Java ImageIO读写JPEG会减少文件大小?

为什么用Java ImageIO读写JPEG会减少文件大小?,java,flashair,Java,Flashair,我使用Java从我的FlashAir 32Gb第二代中读取内容,并将其写入本地硬盘。我可以读取和保存文件,但我注意到硬盘中的文件比SD卡中的原始文件小得多。你知道为什么会这样吗? 这是我使用的代码: URL imageURL = new URL("http://192.168.0.1/DCIM/100__TSB/IMG_0001.JPG"); File dest = new File("/home/me/Pictures/FlashAir/IMG_0001.JPG"); BufferedImag

我使用Java从我的FlashAir 32Gb第二代中读取内容,并将其写入本地硬盘。我可以读取和保存文件,但我注意到硬盘中的文件比SD卡中的原始文件小得多。你知道为什么会这样吗? 这是我使用的代码:

URL imageURL = new URL("http://192.168.0.1/DCIM/100__TSB/IMG_0001.JPG");
File dest = new File("/home/me/Pictures/FlashAir/IMG_0001.JPG");
BufferedImage image = ImageIO.read(imageURL);
ImageIO.write(image, "JPG", dest);

保存到本地硬盘的图像很好,但它们大约是原始大小的1/3。

该代码不仅仅是复制读取和保存文件。它对图像进行解码,然后以默认的JPEG压缩率重新编码,根据文档判断,默认的JPEG压缩率为0.75

如果要更改压缩级别,请签出


如果您试图准确地复制文件,则根本不要使用ImageIO。

该代码不仅仅是复制读取和保存文件。它对图像进行解码,然后以默认的JPEG压缩率重新编码,根据文档判断,默认的JPEG压缩率为0.75

如果要更改压缩级别,请签出

如果您试图准确地复制文件,请不要使用ImageIO