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
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ètreargs1
pour définir la luminosité. -
IMG_FILTER_CONTRAST
: modifie le contraste de l'image. Utilisez le paramètreargs1
pour définir le contraste. -
IMG_FILTER_COLORIZE
: identique au paramètreIMG_FILTER_GRAYSCALE
excepté que vous pouvez spécifier une couleur. Utilisez trois arguments séparés dans les paramètresargs1
,args2
etargs3
sous la formered
,green
,blue
etarg4
pour 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ètreargs1
pour définir le degré de lissoir. -
IMG_FILTER_PIXELATE
: applique un effet de pixelisation à l'image; utilisearg1
pour indiquer la taille de bloc, etarg2
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 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