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