Запись ImageIO дает другой размер файла по сравнению с исходным файлом изображения - PullRequest
3 голосов
/ 14 сентября 2011

Когда ImageIO используется для чтения файла изображения, а затем записывает BufferedImage (без каких-либо манипуляций с объектом BufferedImage) в другой файл, размер записанного файла отличается от исходного файла.

Считывает ли ImageIO полное содержимое (включая любые метаданные, например, метаданные Exif) файла изображения?

А если оно читает полное содержимое, то ImageIO записывает содержимое изображения, включаякакие-либо метаданные?

1 Ответ

4 голосов
/ 14 сентября 2011

Многие форматы файлов (включая, например, JPEG) могут быть правильно сжаты несколькими различными способами (даже при одинаковых настройках качества).Декомпрессия является детерминированной, в то время как сжатие может быть недетерминированным.

Тот факт, что не существует уникального правильного способа сжатия изображения, означает, что вы не можете ожидать, что ImageIO создаст байт.эквивалентный результат после загрузки / сохранения файла.

...