Aplicação de filtros a imagem
<?php
/**
* Converte a imagem em escala cinza
* @param resource $image O identificador da imagem
* @return resource O identificador da imagem modificada
*/
function grayscale( $image )
{
imagefilter( $image, IMG_FILTER_GRAYSCALE );
return $image;
}
/**
* Reverte todas as cores da imagem
* @param resource $image O identificador da imagem
* @return resource O identificador da imagem modificada
*/
function negative( $image )
{
imagefilter( $image, IMG_FILTER_NEGATE );
return $image;
}
/**
* Altera o brilho da imagem
* @param resource $image O identificador da imagem
* @param int $level O nível de brilho
* @return resource O identificador da imagem modificada
*/
function brightness( $image, $level )
{
imagefilter( $image, IMG_FILTER_BRIGHTNESS, ( int ) $level );
return $image;
}
/**
* Altera o contraste da imagem
* @param resource $image O identificador da imagem
* @param int $level O nível de contraste
* @return resource O identificador da imagem modificada
*/
function contrast( $image, $level )
{
imagefilter( $image, IMG_FILTER_CONTRAST, ( int ) $level );
return $image;
}
/**
* Converte a imagem em escala definida
* @param resource $image O identificador da imagem
* @param int $r A quantidade de cor vermelha (de 0 a 255)
* @param int $g A quantidade de cor verde (de 0 a 255)
* @param int $b A quantidade de cor azul (de 0 a 255)
* @param int $alpha Canal alfa, um valor entre 0 e 127.
* 0(zero) indica completamente opaco enquanto 127 indica completamente transparente.
* @return resource O identificador da imagem modificada
*/
function colorize( $image, $r, $g, $b, $alpha = 0 )
{
imagefilter( $image, IMG_FILTER_COLORIZE, ( int ) $r, ( int ) $g, ( int ) $b, ( int ) $alpha );
return $image;
}
/**
* Auto-detecta e realça as bordas na imagem
* @param resource $image O identificador da imagem
* @return resource O identificador da imagem modificada
*/
function edge( $image )
{
imagefilter( $image, IMG_FILTER_EDGEDETECT );
return $image;
}
/**
* Realça a imagem
* @param resource $image O identificador da imagem
* @return resource O identificador da imagem modificada
*/
function emboss( $image )
{
imagefilter( $image, IMG_FILTER_EMBOSS );
return $image;
}
/**
* Desfoca a imagem usando o método de Gauss
* @param resource $image O identificador da imagem
* @return resource O identificador da imagem modificada
*/
function gaussianBlur( $image )
{
imagefilter( $image, IMG_FILTER_GAUSSIAN_BLUR );
return $image;
}
/**
* Desfoca a imagem
* @param resource $image O identificador da imagem
* @return resource O identificador da imagem modificada
*/
function selectiveBlur( $image )
{
imagefilter( $image, IMG_FILTER_SELECTIVE_BLUR );
return $image;
}
/**
* Efeito esboço
* @param resource $image O identificador da imagem
* @return resource O identificador da imagem modificada
*/
function meanRemoval( $image )
{
imagefilter( $image, IMG_FILTER_MEAN_REMOVAL );
return $image;
}
/**
* Suavizar a imagem
* @param resource $image O identificador da imagem
* @param int $level O nível de suavidade
* @return resource O identificador da imagem modificada
*/
function smooth( $image, $level )
{
imagefilter( $image, IMG_FILTER_SMOOTH, ( int ) $level );
return $image;
}
/**
* Aplica o efeito de pixelização na imagem
* @param resource $image O identificador da imagem
* @param int $block_size O tamanho do quadriculado
* @param boolean $effect Define o modo de pixelização
* @return resource O identificador da imagem modificada
*/
function pixelate( $image, $block_size, $effect = false )
{
imagefilter( $image, IMG_FILTER_PIXELATE, ( int ) $block_size, ( boolean ) $effect );
return $image;
}
?>
Teste:
<?php
$image = pixelate( imagecreatefromjpeg( 'Chibi_Kakashi.jpg' ), 10 );
header( 'Content-type: image/jpg' );
imagejpeg( $image, null, 100 );
imagedestroy( $image );
exit;
?>
Outra coisa, essas funções vão te retornar apenas o resource, se você quiser salvar a imagem alterada vai ter que usar:
:seta: imagejpeg
:seta: imagepng
:seta: imagegif
Exemplo de uso:
<?php
$image = pixelate( imagecreatefromjpeg( 'Chibi_Kakashi.jpg' ), 10 );
imagejpeg( $image, 'caminho/nome_da_imagem.jpg', 100 );
?>
Na parte 4 vamos colocar legenda na imagem