Android - шум в сохраненных изображениях

1

My Android-приложение загружает изображения, выполняет некоторую обработку и сохраняет обработанные изображения на SD-карте. Я сохраняю временные файлы на SD-карте вместо использования буферов. Например, чтение фона, прокрутка изображения, рисование аннотации, объединение фона и аннотации в сохраненном файле temp для использования в качестве следующего фона и т.д. Типичные фрагменты:

bitmap = Bitmap.createBitmap(imageSizeX, imageSizeY, Bitmap.Config.ARGB_8888);

bitmap = BitmapFactory.decodeFile(путь, параметры);

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, вывод);

Все работает отлично, но в некоторых случаях сохраненные изображения добавили шум, аналогичный описанному в этом сообщении: Растровое изменение размера и вращение: линейный шум

Автор поставленной статьи решил проблему путем подвыборки, но я не хочу этого делать.

Я пробовал предлагаемые здесь решения: http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/#more-1218 который, если я правильно понимаю, должен быть достигнут, установив: . GetWindow() SetFormat (PixelFormat.TRANSLUCENT); чтобы заставить 32 бит.

что не сильно изменилось. Установка или отсутствие установки флага сглаживания тоже не изменится. Любые другие идеи?

Теги:
image
noise

1 ответ

0
Лучший ответ

В ответ на мой собственный вопрос: Шум исчезает, или, по крайней мере, результат лучше, путем сжатия до .png вместо .jpg

bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);

То же самое небо, которое выглядит как текстура ковра в .jpg, выглядит гладко и чисто в .png. Поскольку разница гораздо более очевидна, чем обычная разница между тем же изображением, сжатым до .png и .jpg, я думаю, это зависит от реализации Android. Установка явно TRANSLUCENT и DITHER не имеет большого значения так или иначе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню