Manipulação de imagens com a GD no PHP - efeitos em fotos

Desenvolvimento

Web comentários

por erikaheidi em 05/12/2011 22:34:25




Agora que já vimos como fazer redimensionamento proporcional de imagens com a GD no PHP, vamos brincar um pouco com os efeitos da função imagefilter. 

Essa função tem vários filtros interessantes, para operações básicas em imagens - preto e branco, negativo, mexer no contraste e brilho, aplicar um filtro de cor, dentre outros.

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

Onde $image é um resource válido de imagem já aberto (usando por exemplo a função imagecreatefromjpeg), e $filtertype é um dos filtros válidos. Os outros argumentos vão depender do filtro que você escolher. Para mais detalhes, veja a página da documentação da função imagefilter no Php.net .

Para todos os exemplos, vou usar a imagem abaixo:

foto original

1. Preto e Branco

<?php

$source = "flower.jpg";
$img = imagecreatefromjpeg($source);

imagefilter($img, IMG_FILTER_GRAYSCALE);

header("Content-type: image/jpeg");
imagejpeg($img);

?>

Resultado:

gd - preto e branco

 

2. Contraste

Os filtros de contraste e brilho recebem um argumento que indica a intensidade do efeito. Para aumentar o contraste da imagem, o valor deve ser negativo (e para diminuir, deve ser um valor positivo). 

<?php

$source = "flower.jpg";
$img = imagecreatefromjpeg($source);


imagefilter($img, IMG_FILTER_CONTRAST, -70);

header("Content-type: image/jpeg");
imagejpeg($img);

?>

O resultado:

gd - aumentar contraste

3. Brilho

No caso do brilho, como acontece com o contraste, passamos um parâmetro para indicar a intensidade, mas para aumentarmos o brilho o parâmetro é positivo (diferentemente do contraste).

<?php

$source = "flower.jpg";
$img = imagecreatefromjpeg($source);


imagefilter($img, IMG_FILTER_BRIGHTNESS, 70);

header("Content-type: image/jpeg");
imagejpeg($img);

?>

O resultado:

gd brilho

4. Colorize

O filtro COLORIZE aplica um filtro de cor na imagem. Ele aceita 4 parâmetros de 0 a 255 que equivalem aos canais da imagem: red, green, blue e alpha (transparência). O parâmetro alpha define o nível de transparência do filtro; se você colocá-lo em 255 é o mesmo que totalmente transparente, então a imagem não terá alterações. Na prática, é bom pra você mexer na intensidade do filtro sem mexer muito nos outros parâmetros.

<?php

$source = "flower.jpg";
$img = imagecreatefromjpeg($source);


imagefilter($img, IMG_FILTER_COLORIZE, 0, 100, 0);

header("Content-type: image/jpeg");
imagejpeg($img);

?>

Resultado:

gd - colorize 0 100 0

Agora o mesmo código, só acrescentando o parâmetro do canal ALPHA, setado para 70 (suaviza a intensidade):

colorize 100/70

5. Sepia

Não existe um filtro específico para o efeito de sepia (envelhecido); para recriar esse efeito, usamos o filtro COLORIZE para dar um tom amarelado depois de aplicar o efeito preto e branco. Também apliquei um filtro de contraste para intensificar as cores.

<?php

$source = "flower.jpg";
$img = imagecreatefromjpeg($source);

imagefilter($img, IMG_FILTER_GRAYSCALE);			
imagefilter($img, IMG_FILTER_COLORIZE, 90, 60, 40);
imagefilter($img, IMG_FILTER_CONTRAST, 10);

header("Content-type: image/jpeg");
imagejpeg($img);

?>

O resultado:

gd - efeito sepia

 

Dá pra fazer muita coisa legando combinando esses efeitos. =) experimente!



sobre Erika Heidi

Desenvolvedora Web PHP graduada em publicidade. Especial interesse pelo mundo geek, manipulação de imagens no php e desenvolvimento voltado para redes sociais.


veja o perfil de Erika Heidi no entrebits


Você também pode se interessar por:


Comentários

blog comments powered by Disqus