Что делает параметр фильтра для createScaledBitmap? - PullRequest
206 голосов
/ 24 мая 2010

Декларация android.graphics.Bitmap.createScaledBitmap равна

public static Bitmap createScaledBitmap
  (Bitmap src, int dstWidth, int dstHeight, boolean filter)

Тем не менее, документация не объясняет никаких параметров. Все они довольно очевидны, кроме boolean filter. Кто-нибудь знает, что он делает?

Ответы [ 3 ]

247 голосов
/ 06 октября 2010

Чтобы расширить ответ Карана: Как правило, вы не увидите никакой разницы, если вы масштабируете свое изображение вниз , но вы заметите, если вы увеличите его вверх *комментарии, вы все равно можете увидеть разницу. Это их пример изображения.

85 голосов
/ 09 октября 2010

Быстрый просмотр исходного кода SKIA показывает, что (по крайней мере по умолчанию) флаг FILTER заставляет его выполнять прямую билинейную интерполяцию. Посмотрите Википедию или вашу любимую графическую ссылку, чтобы увидеть ожидаемые последствия. Традиционно вы хотите выполнять билинейную или бикубическую интерполяцию при увеличении размеров изображений и усреднение областей при уменьшении размеров изображений. У меня складывается впечатление (хотя я рад, что меня поправили), что Android / Skia выполняет простую субсэмплирование при сокращении без фильтрации, поэтому вы, вероятно, получите лучшие результаты от фильтрации даже при уменьшении размера. (Существует альтернативный метод получения высококачественного сокращения с помощью интерполяции, предусматривающий серию 50-процентных сокращений масштаба. Подробнее см. http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html.)

3 голосов
/ 24 мая 2010

Фильтр установит FILTER_BITMAP_FLAG для рисования, которое влияет на выборку растровых изображений, когда они преобразуются на основе предоставленного вами значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...