1

我正在使用 Javajavax.imageio.ImageIO从我的 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。

4

1 回答 1

5

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

如果您想更改压缩级别,请查看此问题

如果您尝试完全复制文件,请不要使用ImageIO

于 2016-02-06T01:19:32.197 回答