Декларация android.graphics.Bitmap.createScaledBitmap
IS
public static Bitmap createScaledBitmap
(Bitmap src, int dstWidth, int dstHeight, boolean filter)
Тем не менее, документация не объясняет никаких параметров. Все они довольно очевидны, за исключением boolean filter
. Кто-нибудь знает, что он делает?
Чтобы расширить ответ Карана: Как правило, вы не увидите никакой разницы, если уменьшите изображение , но вы увидите, если увеличите его .
При прохождении
filter = false
будет получено пиксельное изображение.Прохождение
filter = true
даст вам более гладкие края.Однако, как указал EIYeante в комментариях, вы все равно можете увидеть разницу. Это их пример изображения.
источник
bm = MediaStore.Images.Media.getBitmap(this.getContentResolver(), intent.getData()); resizedBitmap = Bitmap.createScaledBitmap(bm, 150, 150, true); resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 95, out);
я просто меняю параметр фильтра.Фильтр установит FILTER_BITMAP_FLAG для рисования, которое влияет на выборку растровых изображений, когда они преобразуются в зависимости от заданного вами значения.
источник
Немного опоздал на вечеринку, но я подумал, что некоторые примеры изображений могут прояснить проблему.
API Android не определяет, какой тип фильтра будет применяться, поэтому я предполагаю, что вопрос заключается в следующем: хотите ли вы, чтобы ваши пиксели оставались такими же, как они (как вы хотели бы в 8-битном искусстве), или это нормально, чтобы применить преобразование к сделать изображение более приемлемым (как вы хотели бы на фотографиях).
Есть более общий вопрос о том, нужно ли и как фильтровать на суперпользователя .
Говорит Джефф Этвуд:
источник