Skip to content

Справочник API: SamplingMode

SamplingMode — это интерфейс, определяющий способ выборки пикселей при масштабировании, повороте или трансформации изображения.

Реализации

В Skija существует три основных способа указать выборку:

  1. FilterMipmap: Стандартная линейная/ближайшая фильтрация с опциональными мипмапами.
  2. CubicResampler: Высококачественная бикубическая интерполяция (Mitchell, Catmull-Rom).
  3. 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);