imagefilter
En esta página
imagefilter
Aplica un filtro a una imagen
Descripción#
imagefilter(GdImage $image, int $filter, array ...$args): bool
```php
`imagefilter` aplica el filtro dado `filter` sobre la `image`.
## Parámetros
`image`
Un objeto `GdImage`, retornado por una de las funciones de creación de imágenes, como `imagecreatetruecolor`.
`filter`
`filter` puede ser uno de los siguientes:
- `IMG_FILTER_NEGATE` : Invierte todos los colores de la imagen.
- `IMG_FILTER_GRAYSCALE` : Convierte la imagen a niveles de gris cambiando las componentes roja, verde y azul a su suma ponderada utilizando los mismos coeficientes que el cálculo luma REC.601 (Y'). Las componentes alfa se conservan. Para imágenes de paleta, el resultado puede ser diferente debido a las limitaciones de la paleta.
- `IMG_FILTER_BRIGHTNESS` : Modifica el brillo de la imagen. Utilice `args` para definir el nivel de brillo. El rango de brillo está entre -255 y 255.
- `IMG_FILTER_CONTRAST` : Modifica el contraste de la imagen. Utilice `args` para definir el nivel de contraste.
- `IMG_FILTER_COLORIZE` : similar a `IMG_FILTER_GRAYSCALE`, excepto que es posible especificar el color. Utilice `args`, `arg2` y `arg3` en forma de `red`, `green`, `blue` y `arg4` para el canal `alpha`. El rango de cada color está entre 0 y 255.
- `IMG_FILTER_EDGEDETECT` : Utiliza la detección de bordes para resaltar los bordes de la imagen.
- `IMG_FILTER_EMBOSS` : Permite embosar la imagen.
- `IMG_FILTER_GAUSSIAN_BLUR` : Desenfoca la imagen utilizando el método gaussiano.
- `IMG_FILTER_SELECTIVE_BLUR` : Desenfoca la imagen.
- `IMG_FILTER_MEAN_REMOVAL` : Utiliza la supresión de la media para obtener un efecto "croquis".
- `IMG_FILTER_SMOOTH` : Hace la imagen más suave. Utilice `args` para definir el nivel de suavizado.
- `IMG_FILTER_PIXELATE` : Aplica un efecto de pixeles a la imagen, utilice `args` para definir el tamaño del bloque y `arg2` para definir el modo de efecto de pixeles.
- `IMG_FILTER_SCATTER` : Aplica un efecto de dispersión a la imagen, utilice `args` y `arg2` para definir la intensidad del efecto y `arg3` para aplicar el efecto solo sobre ciertos colores de píxeles.
`args`
- `IMG_FILTER_BRIGHTNESS` : Nivel de brillo.
- `IMG_FILTER_CONTRAST` : Nivel de contraste.
- `IMG_FILTER_COLORIZE` : Valor del componente rojo.
- `IMG_FILTER_SMOOTH` : Nivel de suavizado.
- `IMG_FILTER_PIXELATE` : Tamaño del bloque en píxeles.
- `IMG_FILTER_SCATTER` : Nivel de sustracción del efecto. No debe ser superior o igual al nivel de adición definido con `arg2`.
`arg2`
- `IMG_FILTER_COLORIZE` : Valor del componente verde.
- `IMG_FILTER_PIXELATE` : Uso o no del efecto de pixeles avanzado (el valor por omisión es `false`).
- `IMG_FILTER_SCATTER` : Nivel de adición del efecto.
`arg3`
- `IMG_FILTER_COLORIZE` : Valor del componente azul.
- `IMG_FILTER_SCATTER` : Array opcional de valores de color indexados para aplicar el efecto.
`arg4`
- `IMG_FILTER_COLORIZE` canal Alpha, un valor entre 0 y 127. 0 indica opacidad total mientras que 127 indica transparencia total.
## Valores devueltos
Esta función retorna `true` en caso de éxito o `false` si ocurre un error.
## Errores/Excepciones
Genera un `ValueError` si `sub` o `plus` provoca un desbordamiento o un subdesbordamiento con el `IMG_FILTER_SCATTER` `filter`.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.4.0 | Genera ahora un `ValueError` si `sub` o `plus` provoca un desbordamiento o un subdesbordamiento con el `IMG_FILTER_SCATTER` `filter`. |
| 8.0.0 | `image` ahora espera una instancia de `GdImage` ; anteriormente, se esperaba un recurso `gd` de tipo `resource` válido. |
| 7.4.0 | Se añadió el soporte para la dispersión (`IMG_FILTER_SCATTER`). |
## Ejemplos
Ejemplo de niveles de gris con `imagefilter`
Ejemplo de brillo con `imagefilter`
Ejemplo de colorización con `imagefilter`
Ejemplo de negativo con `imagefilter`
Ejemplo de pixeles con `imagefilter`
Resultado del ejemplo anterior es similar a:

Ejemplo de dispersión con `imagefilter`
```php
Resultado del ejemplo anterior es similar a:

Notas#
[!NOTE] El resultado de
IMG_FILTER_SCATTERsiempre es aleatorio.
Véase también#
imageconvolution