imagefilter
(PHP 5)
imagefilter — Applique un filtre à une image
Description
$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ée par une des fonctions de création d'images, comme imagecreatetruecolor().
-
filtertype -
Le paramètre
filtertypepeut 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ètreargs1pour définir la luminosité. -
IMG_FILTER_CONTRAST: modifie le contraste de l'image. Utilisez le paramètreargs1pour définir le contraste. -
IMG_FILTER_COLORIZE: identique au paramètreIMG_FILTER_GRAYSCALEexcepté que vous pouvez spécifier une couleur. Utilisez trois arguments séparés dans les paramètresargs1,args2etargs3sous la formered,green,blueetarg4pour le canalalpha. 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ètreargs1pour définir le degré de lissoir. -
IMG_FILTER_PIXELATE: applique un effet de pixelisation à l'image; utilisearg1pour indiquer la taille de bloc, etarg2pour 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 ou FALSE si une erreur survient.
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($im, IMG_FILTER_GRAYSCALE)) { echo 'Image convertie en grayscale.'; imagepng($im, 'dave.png'); } else { echo 'La conversion 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éfinition 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 PHP, 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 pixelisation à chaque instance, 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 à :
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
