imagefilter

(PHP 5)

imagefilterApplique un filtre � une image

Description

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

imagefilter() applique le filtre filtertype � l'image en utilisant les param�tres args1 , args2 et args3 lorsque cela est n�cessaire.

Liste de param�tres

image

Une ressource d'image, retourn� par une des fonctions de cr�ation d'images, comme imagecreatetruecolor().

filtertype

Le param�tre filtertype peut prendre l'une des valeurs suivantes :

  • IMG_FILTER_NEGATE : renverse toutes les couleurs de l'image.
  • IMG_FILTER_GRAYSCALE : convertit l'image en grayscale.
  • IMG_FILTER_BRIGHTNESS : modifie la luminosit� de l'image. Utilisez le param�tre args1 pour d�finir la luminosit�.
  • IMG_FILTER_CONTRAST : modifie le contraste de l'image. Utilisez le param�tre args1 pour d�finir le contraste.
  • IMG_FILTER_COLORIZE : identique au param�tre IMG_FILTER_GRAYSCALE except� que vous pouvez sp�cifier une couleur. Utilisez trois arguments s�par�s dans les param�tres args1 , args2 et args3 sous la forme red , blue , green et arg4 pour le canal alpha . L'intervalle pour chaque couleur est 0 - 255.
  • IMG_FILTER_EDGEDETECT : utilise la d�tection des bords pour les mettre en �vidence dans l'image.
  • IMG_FILTER_EMBOSS : grave l'image en relief.
  • IMG_FILTER_GAUSSIAN_BLUR : brouille l'image en utilisant la m�thode gaussienne.
  • IMG_FILTER_SELECTIVE_BLUR : brouille l'image.
  • IMG_FILTER_MEAN_REMOVAL : son utilisation signifie le d�placement pour r�aliser un effet "peu pr�cis".
  • IMG_FILTER_SMOOTH : rend l'image liss�e (smooth). Utilisez le param�tre args1 pour d�finir le degr� de lissoir.
  • IMG_FILTER_PIXELATE : applique un effet de pixelisation � l'image; utilise arg1 pour indiquer la taille de bloc, et arg2 pour indiquer le mode de pixelisation.

arg1

  • IMG_FILTER_BRIGHTNESS : degr� de luminosit�.
  • IMG_FILTER_CONTRAST : degr� du contraste.
  • IMG_FILTER_COLORIZE : valeur du composant rouge.
  • IMG_FILTER_SMOOTH : degr� du liss�.
  • IMG_FILTER_PIXELATE: taille de bloc en pixels.

arg2

  • IMG_FILTER_COLORIZE : valeur du composant vert.

arg3

  • IMG_FILTER_COLORIZE : valeur du composant bleu.

arg4

  • IMG_FILTER_COLORIZE : canal Alpha. Une valeur entre 0 et 127. 0 signifie totalement opaque, tandis que 127 signifie totalement transparent.
  • IMG_FILTER_PIXELATE: s'il faut utiliser un effet de pixelisation avanc� ou non (par d�faut, FALSE).

Valeurs de retour

Cette fonction retourne TRUE en cas de succ�s, FALSE en cas d'�chec.

Historique

Version Description
5.3.0 Support de la pixelisation (IMG_FILTER_PIXELATE) ajout�.
5.2.5 Le support du canal Alpha pour la constante IMG_FILTER_COLORIZE a �t� ajout�.

Exemples

Exemple #1 Exemple avec imagefilter()

<?php
$im 
imagecreatefrompng('dave.png');

if(
$im && imagefilter($imIMG_FILTER_GRAYSCALE))
{
    echo 
'Image convertie en grayscale.';

    
imagepng($im'dave.png');
}
else
{
    echo 
'La convertion en grayscale a �chou�.';
}

imagedestroy($im);
?>

Exemple #2 Exemple avec imagefilter()

<?php
$im 
imagecreatefrompng('sean.png');

if(
$im && imagefilter($imIMG_FILTER_BRIGHTNESS20))
{
    echo 
'La luminosit� de l\'image a �t� modifi�e.';
    
imagepng($im'sean.png');
    
imagedestroy($im);
}
else
{
    echo 
'Echec lors de la modification de la luminosit�.';
}
?>

Exemple #3 Exemple avec imagefilter()

<?php
$im 
imagecreatefrompng('philip.png');

/* R, G, B, donc 0, 255, 0 correspond au vert */
if($im && imagefilter($imIMG_FILTER_COLORIZE02550))
{
    echo 
'L\'image a �t� ombrag�e en vert avec succ�s.';
    
imagepng($im'philip.png');
    
imagedestroy($im);
}
else
{
    echo 
'Echec lors de la modification de l\'ombrage.';
}
?>

Exemple #4 Exemple d'image en n�gatif avec imagefilter()

<?php
// D�finission de notre fonction "n�gatif" afin qu'elle soit portable
// �galement sur les versions de PHP qui n'ont pas la fonction imagefilter()
function negate($im)
{
    if(
function_exists('imagefilter'))
    {
        return 
imagefilter($imIMG_FILTER_NEGATE);
    }

    for(
$x 0$x imagesx($im); ++$x)
    {
        for(
$y 0$y imagesy($im); ++$y)
        {
            
$index imagecolorat($im$x$y);
            
$rgb imagecolorsforindex($index);
            
$color imagecolorallocate($im255 $rgb['red'], 255 $rgb['green'], 255 $rgb['blue']);

            
imagesetpixel($im$x$y$color);
        }
    }

    return(
true);
}

$im imagecreatefromjpeg('kalle.jpg');

if(
$im && negate($im))
{
    echo 
'Image convertie avec succ�s en couleur n�gative.';

    
imagejpeg($im'kalle.jpg'100);
    
imagedestroy($im);
}
else
{
    echo 
'Echec lors de la conversion en couleur n�gative.';
}
?>

Exemple #5 Exemple de pixelisation avec imagefilter()

<?php
// Chargement du logo PH, nous avons besoin de deux instances.
$logo1 imagecreatefrompng('./php.png');
$logo2 imagecreatefrompng('./php.png');

// Cr�e une image sur laquelle nous voulons montrer les diff�rences
$output imagecreatetruecolor(imagesx($logo1) * 2imagesy($logo1));

// Applique la pixelation � chaque instances, avec un bloc de 3
imagefilter($logo1IMG_FILTER_PIXELATE3);
imagefilter($logo2IMG_FILTER_PIXELATE3true);

// Fusion des diff�rences dans l'image finale
imagecopy($output$logo10000imagesx($logo1) - 1imagesy($logo1) - 1);
imagecopy($output$logo2imagesx($logo2), 000imagesx($logo2) - 1imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);

// Affichage des diff�rences
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

L'exemple ci-dessus va afficher quelque chose de similaire � :

Notes

Note: Cette fonction n'est disponible que si PHP est compil� avec la version embarqu�e de la biblioth�que GD.

Voir aussi

  • imageconvolution() - Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage