Documentación offline PHP master

imagefilter

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

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:

![Salida del ejemplo de pixeles con imagefilter](en/reference/image/figures/imagefilterpixelate.png)

Ejemplo de dispersión con `imagefilter`

```php

Resultado del ejemplo anterior es similar a:

Salida del ejemplo de dispersión con imagefilter

Notas#

[!NOTE] El resultado de IMG_FILTER_SCATTER siempre es aleatorio.

Véase también#

imageconvolution