Сохранение файлов JPEG в Android без потери информации о пикселях - PullRequest
1 голос
/ 08 февраля 2012

Я загружаю jpeg-файл через BitmapFactory и пытаюсь сохранить его снова (позже я хочу сделать некоторые расчеты для данных пикселей, прежде чем сохранить его снова).

Но если я попытаюсь сохранить его с помощью

FileOutputStream fos = new FileOutputStream(new File("/sdcard/test.jpg"));
originalImage.compress(Bitmap.CompressFormat.JPEG, 100, fos);

тогда это не совсем тот же результат, что и на оригинальном изображении. Некоторые пиксели имеют разные значения цвета, и это не полезно для моих последующих расчетов.

Есть ли возможность сохранить его без потерь? Или проблема уже при загрузке картинки с

Bitmap originalImage = BitmapFactory.decodeFile("/sdcard/input.jpg");

несколько строк раньше?

1 Ответ

5 голосов
/ 08 февраля 2012

Есть ли возможность сохранить его без потерь?

Нет. Формат JPEG использует сжатие с потерями. Это не дает никаких официальных гарантий, даже если вы установите качество на 100.

Или это уже проблема, когда я загружаю картинку с [...]

Нет, битовые карты - это ... карты битов, то есть они представляют точные биты данных изображения.

...