(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 ou FALSE si une erreur survient.
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.