(PHP 5)
imagefilter — Applique un filtre à une image
imagefilter() applique le filtre filtertype à l'image en utilisant les paramètres args1 , args2 et args3 lorsque cela est nécessaire.
Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().
Le paramètre filtertype peut prendre l'une des valeurs suivantes :
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
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é. |
Exemple #1 Exemple avec imagefilter()
<?php
$im = imagecreatefrompng('dave.png');
if($im && imagefilter($im, IMG_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($im, IMG_FILTER_BRIGHTNESS, 20))
{
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($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
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($im, IMG_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($im, 255 - $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) * 2, imagesy($logo1));
// Applique la pixelation à chaque instances, avec un bloc de 3
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);
// Fusion des différences dans l'image finale
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($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 à :
Note: Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.