Aplica un filtro de imagen al lienzo.
Las opciones predefinidas son:
INVERTIR
Invierte los colores de la imagen. No se utiliza ningún parámetro.
GRAY
Convierte la imagen a escala de grises. No se utiliza ningún parámetro.
THRESHOLD
Convierte la imagen a blanco y negro. Los píxeles con un valor de escala de grises superior a un umbral dado se convierten en blanco. El resto se convierte en negro. El umbral debe estar entre 0.0 (negro) y 1.0 (blanco). Si no se especifica ningún valor, se usa 0.5.
OPACO
Establece el canal alfa como completamente opaco. No se utiliza ningún parámetro.
POSTERIZE
Limita el número de colores en la imagen. Cada canal de color se limita al número de colores especificado. Los valores entre 2 y 255 son válidos, pero los resultados son más evidentes con valores más bajos. El valor predeterminado es 4.
BLUR
Difumina la imagen. El nivel de difuminación se especifica mediante un radio de difuminación. Valores más altos aumentan el difuminado. El valor predeterminado es 4. Se utiliza un desenfoque gaussiano en el modo P2D
. Se utiliza un desenfoque de caja en el modo WEBGL
.
ERODE
Reduce las áreas claras. No se utiliza ningún parámetro.
DILATE
Aumenta las áreas claras. No se utiliza ningún parámetro.
filter()
utiliza WebGL en segundo plano de forma predeterminada porque es más rápido. Esto se puede desactivar en el modo P2D
agregando un argumento false
, como en filter(BLUR, false)
. Esto puede ser útil para mantener el cómputo fuera de la GPU o para solucionar problemas de falta de soporte de WebGL.
En el modo WebgL, filter()
también puede usar shaders personalizados. Consulta createFilterShader() para obtener más información.
Ejemplos
Sintaxis
filter(filterType, [filterParam], [useWebGL])
filter(filterType, [useWebGL])
filter(shaderFilter)
Parámetros
uno de THRESHOLD, GRAY, OPAQUE, INVERT, POSTERIZE, BLUR, ERODE, DILATE o BLUR.
parámetro único para cada filtro.
bandera para controlar si se utilizan filtros WebGL rápidos (GPU) o filtros de imagen originales (CPU); por defecto es true
.
shader que ha sido cargado, con el fragment shader usando un uniform tex0
.