Rechercher une fonction PHP

imagefilter

(PHP 5, PHP 7)

imagefilterApplique un filtre à une image

Description

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

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

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

image

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

filtertype

filtertype peut être l'un des suivants :

  • IMG_FILTER_NEGATE : Inverse toutes les couleurs de l'image.
  • IMG_FILTER_GRAYSCALE : Convertit l'image en échelle de gris en changeant les composants rouge, vert et bleu en leur somme pondérée à l'aide des mêmes coefficients que le calcul de la luminance REC.601 luma (Y'). Les composants alpha sont conservés. Pour les images de palette, le résultat peut différer en raison des limitations de palette.
  • IMG_FILTER_BRIGHTNESS : Modifie la luminosité de l'image. Utilisez args1 pour définir le niveau de luminosité. L'intervalle de la luminosité est de -255 à 255.
  • IMG_FILTER_CONTRAST : Modifie le contraste de l'image. Utilisez args1 pour définir le niveau de contraste.
  • IMG_FILTER_COLORIZE : Comme IMG_FILTER_GRAYSCALE sauf que vous pouvez spécifier la couleur. args1, args2 et args3 sous la forme red, green, blue et arg4 pour le canal alpha. L'intervalle pour chaque couleur est de 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 : Trouble l'image en utilisant la méthode gaussienne.
  • IMG_FILTER_SELECTIVE_BLUR : Trouble 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 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.
  • IMG_FILTER_SCATTER: Applique un effet de dispersion à l'image, utilisez arg1 et arg2 pour définir la force de l'effet et additionellement arg3 pour appliquer l'effet uniquement sur les pixels de couleur sélectionné.

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.
  • IMG_FILTER_SCATTER : Niveau de soustraction d'effet. Ceci ne doit pas être plus grand ou égal que le niveau d'addition défini avec arg2.

arg2

  • IMG_FILTER_COLORIZE : Valeur du composant vert.
  • IMG_FILTER_PIXELATE : Utiliser ou non l'effet de pixellisation avancé (valeur par défaut FALSE).
  • IMG_FILTER_SCATTER : Niveau d'addition d'effet.

arg3

  • IMG_FILTER_COLORIZE : Valeur du composant bleu.
  • IMG_FILTER_SCATTER : Valeurs de couleur indexées sur un tableau facultatif auxquelles appliquer l'effet.

arg4

  • IMG_FILTER_COLORIZE : canal Alpha. Une valeur entre 0 et 127. 0 signifie totalement opaque, tandis que 127 signifie totalement transparent.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Retour à la première page de Manuel PHP  Table des matières Haut

Historique

Version Description
7.4.0 Support de dispersion (IMG_FILTER_SCATTER) ajouté.
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é.

Retour à la première page de Manuel PHP  Table des matières Haut

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 conversion 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é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($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 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) * 2imagesy($logo1));

// Applique la pixelisation à chaque instance, 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 à :

Affichage de l'exemple : imagefilter() pixélixé

Exemple #6 Exemple de dispersion imagefilter()

<?php
// Charger l'image
$logo imagecreatefrompng('./php.png');

// Applique une dispersion très douce à l'image
imagefilter($logoIMG_FILTER_SCATTER35);

// Afficher l'image avec l'effet de dispersion
header('Content-Type: image/png');
imagepng($logo);
imagedestroy($logo);
?>

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

Affichage de l'exemple : dispersion de imagefilter()

Retour à la première page de Manuel PHP  Table des matières Haut

Notes

Note: Le résultat de IMG_FILTER_SCATTER est toujours aléatoire.

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

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

Rechercher une fonction PHP

Version en cache

22/11/2024 22:23:04 Cette version de la page est en cache (à la date du 22/11/2024 22:23:04) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-imagefilter.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut