我正在使用Java的javax.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。
答案 0 :(得分:5)
该代码不只是复制(读取和保存)文件。它正在解码图像,然后以默认的JPEG压缩率对其进行重新编码(根据JPEGImageWriteParam
文档判断,为0.75)。
如果您想更改压缩级别,请查看this question。
如果您尝试完全复制文件,请不要使用ImageIO
。