Underc0de

Programación Web => Back-end => Mensaje iniciado por: arthusu en Mayo 07, 2015, 02:37:09 PM

Título: [PHP]Filtros con la libreria GD
Publicado por: arthusu en Mayo 07, 2015, 02:37:09 PM
Buenas en este caso utilizaremos la libreria PHP GD para aplicar algunos efectos comunes utilizando la funcion imagefilter() (http://www.hackingwithphp.com/11/2/15/special-effects-using-imagefilter):

Citarbool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] )

Como se describe la sintaxis arriba, necesitamos un recurso de imagen, una constante que aplicara el filtro (varios incluyen opciones y otros no).

Vamos a explicar algunas de las opciones que podremos usar.

IMG_FILTER_NEGATE - Esto lo que hace es negar los colores de la imagen (invertirlos).

IMG_FILTER_GRAYSCALE - Convierte la imagen a escala de grises.

IMG_FILTER_GAUSSIAN_BLUR - Pone la imagen borrosa utilizando el metodo Gaussiano.

IMG_FILTER_EMBOSS - Pone en relieve la imagen.

IMG_FILTER_EDGEDETECT - Detecta los bordes de la imagen para resaltarlos.

IMG_FILTER_BRIGHTNESS - Cambia el brillo de la imagen. Tiene un argumento el cual puede ir del valor -255 a 255.

IMG_FILTER_COLORIZE - Le da un color a toda la imagen, se usan tres parametros RGB (rojo, verde y azul), tambien puedes usar un cuarto parametro para valores alpha que va desde 0 a 127 lo cual le da transparencia a la imagen.

IMG_FILTER_CONTRAST - Cambia el contraste de la imagen.
Tiene un argumento el cual puede ir del valor -255 a 255.

IMG_FILTER_SMOOTH - Suaviza la imagen. Los valores recomendados son de -8 a 8 para que la diferencia se note pero no exageradamente.

Ahora veremos dos ejemplos en practica:

Codigo:

Código (php) [Seleccionar]
$image = imagecreatefrompng("ay2bdLJ.png");
imagefilter($image, IMG_FILTER_NEGATE); // negar colores
header("content-type: image/png");
imagepng($image);
imagedestroy($image);


Imagen: http://i.imgur.com/HOINYIr.png
Filtro Aplicado: IMG_FILTER_NEGATE
Resultado:
(http://1.bp.blogspot.com/-4V_5_O_3v4I/VUrImCe9y8I/AAAAAAAACkM/klpFb2KqRLk/s1600/Screenshot_5.png)

Codigo:
Código (php) [Seleccionar]
$image = imagecreatefrompng("space.png");
imagefilter($image, IMG_FILTER_COLORIZE,255,0,0); // le da color a la imagen, red green blue
header("content-type: image/png");
imagepng($image);
imagedestroy($image);

Imagen: http://i.imgur.com/Nix7KLI.png
Filtro Aplicado: IMG_FILTER_COLORIZE
Resultado:

(http://4.bp.blogspot.com/-K02fEKSpqhQ/VUrL2pWSmHI/AAAAAAAACkY/DWWaXhrr1sA/s1600/Screenshot_6.png)

Y hasta aqui esta pequeña introduccion, es muy facil de usar, pero los efectos son bastante buenos, saludos!