Справочник API: SamplingMode
SamplingMode — это интерфейс, определяющий способ выборки пикселей при масштабировании, повороте или трансформации изображения.
Реализации
В Skija существует три основных способа указать выборку:
FilterMipmap: Стандартная линейная/ближайшая фильтрация с опциональными мипмапами.CubicResampler: Высококачественная бикубическая интерполяция (Mitchell, Catmull-Rom).SamplingModeAnisotropic: Высококачественная фильтрация для текстур, просматриваемых под острыми углами.
Стандартные пресеты
SamplingMode.DEFAULT: Фильтрация по ближайшему соседу (самая быстрая, блочная).SamplingMode.LINEAR: Билинейная фильтрация (сглаженная, используется по умолчанию в большинстве случаев).SamplingMode.MITCHELL: Высококачественная бикубическая (сглаженная и чёткая).SamplingMode.CATMULL_ROM: Очень чёткая бикубическая.
FilterMipmap
Это наиболее распространённый режим выборки. Он использует два параметра:
FilterMode
NEAREST: Выбирает один ближайший пиксель.LINEAR: Интерполирует между 4 ближайшими пикселями.
MipmapMode
NONE: Мипмапы не используются.NEAREST: Выборка из ближайшего уровня мипмапа.LINEAR: Интерполяция между двумя уровнями мипмапов (трилинейная фильтрация).
Использование
java
// Билинейная выборка
canvas.drawImage(img, 0, 0, SamplingMode.LINEAR, null);
// По ближайшему соседу (стиль пиксель-арт)
canvas.drawImage(img, 0, 0, SamplingMode.DEFAULT, null);
// Высококачественная бикубическая
canvas.drawImage(img, 0, 0, CubicResampler.MITCHELL, null);