filtres_images_lib_mini.php
SPIP, Système de publication pour l'internet
Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James
Ce programme est un logiciel libre distribué sous licence GNU/GPL.
Table of Contents
Classes
- phpthumb_functions
- Produire des fichiers au format .ico
Constants
- _SVG_SUPPORTED = \true
Functions
- _couleur_dec_to_hex() : string
- Transforme une couleur vectorielle R,G,B en hexa (par exemple pour usage css)
- _couleur_hex_to_dec() : array<string|int, mixed>
- Transforme une couleur hexa en vectorielle R,G,B
- _couleur_hsl_to_hex() : string
- Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)
- _couleur_hex_to_hsl() : array<string|int, mixed>
- Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)
- _couleur_rgb_to_hsl() : array<string|int, mixed>
- Transformation d'une couleur RGB en HSL
- _couleur_hsl_to_rgb() : array<string|int, mixed>
- Transformation d'une couleur HSL en RGB
- statut_effacer_images_temporaires() : bool|void
- Donne un statut au fichier-image intermédiaire servant au traitement d'image selon qu'il doit être gravé (fichier .src) ou pas.
- _image_valeurs_trans() : bool|string|array<string|int, mixed>
- Fonctions de preparation aux filtres de traitement d'image les fonctions de lecture et d'ecriture renseignees traitent uniquement le cas GD2 qui est le cas general des filtres images
- _image_extensions_logos() : array<string|int, mixed>
- Extensions d’images acceptées en tant que logos
- _image_extensions_acceptees_en_entree() : array<string|int, mixed>
- Extensions d’images acceptées en entrée
- _image_extensions_acceptees_en_sortie() : array<string|int, mixed>
- Extensions d’images acceptées en sortie
- _image_extension_normalisee() : mixed
- _image_extensions_conservent_transparence() : mixed
- _image_trouver_extension() : string
- Retourne la terminaison d’un fichier image
- _image_trouver_extension_pertinente() : string
- Tente de trouver le véritable type d’une image, même si une image est d’extension .jpg alors que son contenu est autre chose (gif ou png)
- _image_trouver_extension_depuis_mime() : string
- Retourne une extension d’image depuis un mime-type
- _imagecreatefrom_func() : resource|null
- Crée une image depuis un fichier ou une URL (en indiquant la fonction GD à utiliser)
- _imagecreatefromjpeg() : resource|null
- Crée une image depuis un fichier ou une URL (au format jpeg)
- _imagecreatefrompng() : resource|null
- Crée une image depuis un fichier ou une URL (au format png)
- _imagecreatefromgif() : resource|null
- Crée une image depuis un fichier ou une URL (au format gif)
- _imagecreatefromwebp() : resource|null
- Crée une image depuis un fichier ou une URL (au format webp)
- _image_imagepng() : bool
- Affiche ou sauvegarde une image au format PNG
- _image_imagegif() : bool
- Affiche ou sauvegarde une image au format GIF
- _image_imagejpg() : bool
- Affiche ou sauvegarde une image au format JPG
- _image_imageico() : bool
- Crée un fichier-image au format ICO
- _image_imagewebp() : bool
- Affiche ou sauvegarde une image au format WEBP
- _image_imagesvg() : bool
- Sauvegarde une image au format SVG
- _image_gd_output() : bool
- Finalise le traitement GD
- reconstruire_image_intermediaire() : mixed
- Reconstruit une image à partir des sources de contrôle de son ancienne construction
- ramasse_miettes() : mixed
- Indique qu'un fichier d'image calculé est à conserver
- image_graver() : string
- Clôture une série de filtres d'images
- _image_tag_changer_taille() : string
- Applique des attributs de taille (width, height) à une balise HTML
- _image_ecrire_tag() : string
- Écriture de la balise img en sortie de filtre image
- _image_creer_vignette() : array<string|int, mixed>|null
- Crée si possible une miniature d'une image
- _image_ratio() : array<string|int, mixed>
- Réduire des dimensions en respectant un ratio
- ratio_passe_partout() : array<string|int, mixed>
- Réduire des dimensions en respectant un ratio sur la plus petite dimension
- process_image_svg_identite() : string
- Fonction identite de traitement par defaut des images SVG (quand un filtre n'annonce pas qu'il sait traiter un SVG on applique cette fonction a la place)
- process_image_reduire() : string
- Réduit une image
Constants
_SVG_SUPPORTED
public
mixed
_SVG_SUPPORTED
= \true
Functions
_couleur_dec_to_hex()
Transforme une couleur vectorielle R,G,B en hexa (par exemple pour usage css)
_couleur_dec_to_hex(int $red, int $green, int $blue) : string
Parameters
- $red : int
-
Valeur du rouge de 0 à 255.
- $green : int
-
Valeur du vert de 0 à 255.
- $blue : int
-
Valeur du bleu de 0 à 255.
Return values
string —Le code de la couleur en hexadécimal.
_couleur_hex_to_dec()
Transforme une couleur hexa en vectorielle R,G,B
_couleur_hex_to_dec(string $couleur) : array<string|int, mixed>
Parameters
- $couleur : string
-
Code couleur en hexa (#000000 à #FFFFFF).
Return values
array<string|int, mixed> —Un tableau des 3 éléments : rouge, vert, bleu.
_couleur_hsl_to_hex()
Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)
_couleur_hsl_to_hex(int $hue, int $saturation, int $lightness) : string
Parameters
- $hue : int
-
Valeur de teinte de 0 à 1.
- $saturation : int
-
Valeur de saturation de 0 à 1.
- $lightness : int
-
Valeur de luminosité de 0 à 1.
Return values
string —Le code de la couleur en hexadécimal.
_couleur_hex_to_hsl()
Transforme une couleur vectorielle H,S,L en hexa (par exemple pour usage css)
_couleur_hex_to_hsl(string $couleur) : array<string|int, mixed>
Parameters
- $couleur : string
-
Code couleur en hexa (#000000 à #FFFFFF).
Return values
array<string|int, mixed> —Un tableau des 3 éléments : teinte, saturation, luminosité.
_couleur_rgb_to_hsl()
Transformation d'une couleur RGB en HSL
_couleur_rgb_to_hsl(int $R, int $G, int $B) : array<string|int, mixed>
HSL float entre 0 et 1 RGB entiers entre 0 et 255
Parameters
- $R : int
- $G : int
- $B : int
Return values
array<string|int, mixed>_couleur_hsl_to_rgb()
Transformation d'une couleur HSL en RGB
_couleur_hsl_to_rgb(float $H, float $S, float $L) : array<string|int, mixed>
HSL float entre 0 et 1 RGB entiers entre 0 et 255
Parameters
- $H : float
- $S : float
- $L : float
Return values
array<string|int, mixed>statut_effacer_images_temporaires()
Donne un statut au fichier-image intermédiaire servant au traitement d'image selon qu'il doit être gravé (fichier .src) ou pas.
statut_effacer_images_temporaires(bool|string $stat) : bool|void
Un appel PHP direct aux fonctions de filtre d'image produira ainsi une image
permanente (gravée) ; un appel généré par le compilateur via
filtrer('image_xx, ...)
effacera automatiquement le fichier-image temporaire.
Parameters
- $stat : bool|string
-
- true, false ou le statut déjà défini
- 'get' pour obtenir le statut sauvé si traitements enchaînés.
Return values
bool|void —true si il faut supprimer le fichier temporaire ; false sinon.
_image_valeurs_trans()
Fonctions de preparation aux filtres de traitement d'image les fonctions de lecture et d'ecriture renseignees traitent uniquement le cas GD2 qui est le cas general des filtres images
_image_valeurs_trans(string $img, string $effet[, bool|string $forcer_format = false ][, array<string|int, mixed> $fonction_creation = null ][, bool $find_in_path = false ][, bool $support_svg = false ]) : bool|string|array<string|int, mixed>
mais image_reduire utilise aussi cette fonction en adaptant le traitement en fonction de la librairie graphique choisie dans la configuration de SPIP
Parameters
- $img : string
-
Chemin de l'image ou balise html
<img src=...>
. - $effet : string
-
Les nom et paramètres de l'effet à apporter sur l'image (par exemple : reduire-300-200).
- $forcer_format : bool|string = false
-
Un nom d'extension spécifique demandé (par exemple : jpg, png, txt...). Par défaut false : GD se débrouille seule).
- $fonction_creation : array<string|int, mixed> = null
-
Un tableau à 2 éléments :
- string : indique le nom du filtre de traitement demandé (par exemple :
image_reduire
) ; - array : tableau reprenant la valeur de
$img
et chacun des arguments passés au filtre utilisé.
- string : indique le nom du filtre de traitement demandé (par exemple :
- $find_in_path : bool = false
-
false (par défaut) indique que l'on travaille sur un fichier temporaire (.src) ; true, sur un fichier définitif déjà existant.
- $support_svg : bool = false
-
false (par defaut) indique que le filtre ne sait pas traiter le cas particulier du SVG on lui substitue un filtre generique qui ne fait rien pour ne pas briser la chaine des filtres images true si le filtre appelant sait traiter les SVG
Tags
Return values
bool|string|array<string|int, mixed> —- false si pas de tag
<img
,- si l'extension n'existe pas,
- si le fichier source n'existe pas,
- si les dimensions de la source ne sont pas accessibles,
- si le fichier temporaire n'existe pas,
- si la fonction
_imagecreatefrom{extension}
n'existe pas ;
- "" (chaîne vide) si le fichier source est distant et n'a pas réussi à être copié sur le serveur ;
- array : tableau décrivant de l'image
_image_extensions_logos()
Extensions d’images acceptées en tant que logos
_image_extensions_logos([array{objet?: string, id_objet?: int} $args = [] ]) : array<string|int, mixed>
Parameters
- $args : array{objet?: string, id_objet?: int} = []
-
Arguments transmis au pipeline. Tableau contenant des informations sur le contexte d'appel.
Return values
array<string|int, mixed>_image_extensions_acceptees_en_entree()
Extensions d’images acceptées en entrée
_image_extensions_acceptees_en_entree() : array<string|int, mixed>
Return values
array<string|int, mixed>_image_extensions_acceptees_en_sortie()
Extensions d’images acceptées en sortie
_image_extensions_acceptees_en_sortie() : array<string|int, mixed>
Return values
array<string|int, mixed>_image_extension_normalisee()
_image_extension_normalisee(mixed $extension) : mixed
Parameters
- $extension : mixed
_image_extensions_conservent_transparence()
_image_extensions_conservent_transparence() : mixed
_image_trouver_extension()
Retourne la terminaison d’un fichier image
_image_trouver_extension(string $path) : string
Parameters
- $path : string
Return values
string_image_trouver_extension_pertinente()
Tente de trouver le véritable type d’une image, même si une image est d’extension .jpg alors que son contenu est autre chose (gif ou png)
_image_trouver_extension_pertinente(string $path) : string
Parameters
- $path : string
Return values
string —Extension, dans le format attendu par les fonctions 'gd' ('jpeg' pour les .jpg par exemple)
_image_trouver_extension_depuis_mime()
Retourne une extension d’image depuis un mime-type
_image_trouver_extension_depuis_mime(string $mime) : string
Parameters
- $mime : string
Return values
string_imagecreatefrom_func()
Crée une image depuis un fichier ou une URL (en indiquant la fonction GD à utiliser)
_imagecreatefrom_func(string $func, string $filename) : resource|null
Utilise les fonctions spécifiques GD.
- Si la fonction GD n'existe pas (GD non actif?), génère une erreur, mais ne retourne rien
- Si l'image est impossible à créer avec la fonction indiquée, génère une erreur, et une image vide
Parameters
- $func : string
-
Fonction GD à utiliser tel que 'imagecreatefromjpeg'
- $filename : string
-
Le path vers l'image à traiter (par exemple : IMG/distant/jpg/image.jpg ou local/cache-vignettes/L180xH51/image.jpg).
Return values
resource|null —Une ressource de type Image GD.
_imagecreatefromjpeg()
Crée une image depuis un fichier ou une URL (au format jpeg)
_imagecreatefromjpeg(string $filename) : resource|null
Utilise les fonctions spécifiques GD.
Parameters
- $filename : string
-
Le path vers l'image à traiter (par exemple : IMG/distant/jpg/image.jpg ou local/cache-vignettes/L180xH51/image.jpg).
Tags
Return values
resource|null —Une ressource de type Image GD.
_imagecreatefrompng()
Crée une image depuis un fichier ou une URL (au format png)
_imagecreatefrompng(string $filename) : resource|null
Utilise les fonctions spécifiques GD.
Parameters
- $filename : string
-
Le path vers l'image à traiter (par exemple : IMG/distant/png/image.png ou local/cache-vignettes/L180xH51/image.png).
Tags
Return values
resource|null —Une ressource de type Image GD.
_imagecreatefromgif()
Crée une image depuis un fichier ou une URL (au format gif)
_imagecreatefromgif(string $filename) : resource|null
Utilise les fonctions spécifiques GD.
Parameters
- $filename : string
-
Le path vers l'image à traiter (par exemple : IMG/distant/gif/image.gif ou local/cache-vignettes/L180xH51/image.gif).
Tags
Return values
resource|null —Une ressource de type Image GD.
_imagecreatefromwebp()
Crée une image depuis un fichier ou une URL (au format webp)
_imagecreatefromwebp(string $filename) : resource|null
Utilise les fonctions spécifiques GD.
Parameters
- $filename : string
-
Le path vers l'image à traiter (par exemple : IMG/distant/png/image.webp ou local/cache-vignettes/L180xH51/image.webp).
Tags
Return values
resource|null —Une ressource de type Image GD.
_image_imagepng()
Affiche ou sauvegarde une image au format PNG
_image_imagepng(resource $img, string $fichier) : bool
Utilise les fonctions spécifiques GD.
Parameters
- $img : resource
-
Une ressource de type Image GD.
- $fichier : string
-
Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.png).
Return values
bool —- false si l'image créée a une largeur nulle ou n'existe pas ;
- true si une image est bien retournée.
_image_imagegif()
Affiche ou sauvegarde une image au format GIF
_image_imagegif(resource $img, string $fichier) : bool
Utilise les fonctions spécifiques GD.
Parameters
- $img : resource
-
Une ressource de type Image GD.
- $fichier : string
-
Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.gif).
Return values
bool —- false si l'image créée a une largeur nulle ou n'existe pas ;
- true si une image est bien retournée.
_image_imagejpg()
Affiche ou sauvegarde une image au format JPG
_image_imagejpg(resource $img, string $fichier[, int $qualite = _IMG_GD_QUALITE ]) : bool
Utilise les fonctions spécifiques GD.
Parameters
- $img : resource
-
Une ressource de type Image GD.
- $fichier : string
-
Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.jpg).
- $qualite : int = _IMG_GD_QUALITE
-
Le niveau de qualité du fichier résultant : de 0 (pire qualité, petit fichier) à 100 (meilleure qualité, gros fichier). Par défaut, prend la valeur (85) de la constante _IMG_GD_QUALITE (modifiable depuis mes_options.php).
Return values
bool —- false si l'image créée a une largeur nulle ou n'existe pas ;
- true si une image est bien retournée.
_image_imageico()
Crée un fichier-image au format ICO
_image_imageico(resource $img, string $fichier) : bool
Utilise les fonctions de la classe phpthumb_functions.
Parameters
- $img : resource
-
Une ressource de type Image GD.
- $fichier : string
-
Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.jpg).
Tags
Return values
bool —true si le fichier a bien été créé ; false sinon.
_image_imagewebp()
Affiche ou sauvegarde une image au format WEBP
_image_imagewebp(resource $img, string $fichier[, mixed $qualite = _IMG_GD_QUALITE ]) : bool
Utilise les fonctions spécifiques GD.
Parameters
- $img : resource
-
Une ressource de type Image GD.
- $fichier : string
-
Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.webp).
- $qualite : mixed = _IMG_GD_QUALITE
Return values
bool —- false si l'image créée a une largeur nulle ou n'existe pas ;
- true si une image est bien retournée.
_image_imagesvg()
Sauvegarde une image au format SVG
_image_imagesvg(string $img, string $fichier) : bool
- N'UTILISE PAS GD - C'est une fonction derogatoire pour faciliter le traitement des SVG
Parameters
- $img : string
-
contenu du SVG ou chemin vers le SVG source (et c'est alors une copie)
- $fichier : string
-
Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.png).
Return values
bool —- false si l'image créée a une largeur nulle ou n'existe pas ;
- true si une image est bien retournée.
_image_gd_output()
Finalise le traitement GD
_image_gd_output(resource|string $img, array<string|int, mixed> $valeurs[, int $qualite = _IMG_GD_QUALITE ][, mixed $fonction = null ]) : bool
Crée un fichier_image temporaire .src ou vérifie que le fichier_image définitif a bien été créé.
Parameters
- $img : resource|string
-
Une ressource de type Image GD (ou une string pour un SVG)
- $valeurs : array<string|int, mixed>
-
Un tableau des informations (tailles, traitement, path...) accompagnant l'image.
- $qualite : int = _IMG_GD_QUALITE
-
N'est utilisé que pour les images jpg. Le niveau de qualité du fichier résultant : de 0 (pire qualité, petit fichier) à 100 (meilleure qualité, gros fichier). Par défaut, prend la valeur (85) de la constante _IMG_GD_QUALITE (modifiable depuis mes_options.php).
- $fonction : mixed = null
Tags
Return values
bool —- true si le traitement GD s'est bien finalisé ;
- false sinon.
reconstruire_image_intermediaire()
Reconstruit une image à partir des sources de contrôle de son ancienne construction
reconstruire_image_intermediaire(string $fichier_manquant) : mixed
Parameters
- $fichier_manquant : string
-
Chemin vers le fichier manquant
Tags
ramasse_miettes()
Indique qu'un fichier d'image calculé est à conserver
ramasse_miettes(string $fichier) : mixed
Permet de rendre une image définitive et de supprimer les images intermédiaires à son calcul.
Supprime le fichier de contrôle de l’image cible (le $fichier.src) ce qui indique que l'image est définitive.
Remonte ensuite la chaîne des fichiers de contrôle pour supprimer les images temporaires (mais laisse les fichiers de contrôle permettant de les reconstruire).
Parameters
- $fichier : string
-
Chemin du fichier d'image calculé
Tags
image_graver()
Clôture une série de filtres d'images
image_graver(string $img) : string
Ce filtre est automatiquement appelé à la fin d'une série de filtres d'images dans un squelette.
Parameters
- $img : string
-
Code HTML de l'image
Tags
Return values
string —Code HTML de l'image
_image_tag_changer_taille()
Applique des attributs de taille (width, height) à une balise HTML
_image_tag_changer_taille(string $tag, int $width, int $height[, bool|string $style = false ]) : string
Utilisé avec des balises <img>
tout particulièrement.
Modifie l'attribut style s'il était renseigné, en enlevant les informations éventuelles width / height dedans.
Parameters
- $tag : string
-
Code html de la balise
- $width : int
-
Hauteur
- $height : int
-
Largeur
- $style : bool|string = false
-
Attribut html style à appliquer. False extrait celui présent dans la balise
Tags
Return values
string —Code html modifié de la balise.
_image_ecrire_tag()
Écriture de la balise img en sortie de filtre image
_image_ecrire_tag(array<string|int, mixed> $valeurs[, array<string|int, mixed> $surcharge = [] ]) : string
Reprend le tag initial et surcharge les attributs modifiés
Parameters
- $valeurs : array<string|int, mixed>
-
Description de l'image tel que retourné par
_image_valeurs_trans()
- $surcharge : array<string|int, mixed> = []
-
Permet de surcharger certaines descriptions présentes dans
$valeurs
tel que 'style', 'width', 'height'
Tags
Return values
string —Retourne le code HTML de l'image
_image_creer_vignette()
Crée si possible une miniature d'une image
_image_creer_vignette(array<string|int, mixed> $valeurs, int $maxWidth, int $maxHeight[, string $process = 'AUTO' ][, bool $force = false ]) : array<string|int, mixed>|null
Parameters
- $valeurs : array<string|int, mixed>
-
Description de l'image, telle que retournée par
_image_valeurs_trans()
- $maxWidth : int
-
Largeur maximum en px de la miniature à réaliser
- $maxHeight : int
-
Hauteur maximum en px de la miniateure à réaliser
- $process : string = 'AUTO'
-
Librairie graphique à utiliser (gd2, ou autre fournie par plugin). AUTO utilise la librairie sélectionnée dans la configuration.
- $force : bool = false
Tags
Return values
array<string|int, mixed>|null —Description de l'image, sinon null.
_image_ratio()
Réduire des dimensions en respectant un ratio
_image_ratio(int $srcWidth, int $srcHeight, int $maxWidth, int $maxHeight) : array<string|int, mixed>
Réduit des dimensions (hauteur, largeur) pour qu'elles soient incluses dans une hauteur et largeur maximum fournies en respectant la proportion d'origine
Parameters
- $srcWidth : int
-
Largeur de l'image source
- $srcHeight : int
-
Hauteur de l'image source
- $maxWidth : int
-
Largeur maximum souhaitée
- $maxHeight : int
-
Hauteur maximum souhaitée
Tags
Return values
array<string|int, mixed> —Liste [ largeur, hauteur, ratio de réduction ]
ratio_passe_partout()
Réduire des dimensions en respectant un ratio sur la plus petite dimension
ratio_passe_partout(int $srcWidth, int $srcHeight, int $maxWidth, int $maxHeight) : array<string|int, mixed>
Réduit des dimensions (hauteur, largeur) pour qu'elles soient incluses dans la plus grande hauteur ou largeur maximum fournie en respectant la proportion d'origine
Parameters
- $srcWidth : int
-
Largeur de l'image source
- $srcHeight : int
-
Hauteur de l'image source
- $maxWidth : int
-
Largeur maximum souhaitée
- $maxHeight : int
-
Hauteur maximum souhaitée
Tags
Return values
array<string|int, mixed> —Liste [ largeur, hauteur, ratio de réduction ]
process_image_svg_identite()
Fonction identite de traitement par defaut des images SVG (quand un filtre n'annonce pas qu'il sait traiter un SVG on applique cette fonction a la place)
process_image_svg_identite(array<string|int, mixed> $image) : string
Parameters
- $image : array<string|int, mixed>
-
tableau des valeurs crees par _image_valeurs_trans
Return values
stringprocess_image_reduire()
Réduit une image
process_image_reduire(array<string|int, mixed> $fonction, string $img, int $taille, int $taille_y, bool $force[, string $process = 'AUTO' ]) : string
Parameters
- $fonction : array<string|int, mixed>
-
Un tableau à 2 éléments :
- string : indique le nom du filtre de traitement demandé (par exemple :
image_reduire
) ; - array : tableau reprenant la valeur de
$img
et chacun des arguments passés au filtre utilisé.
- string : indique le nom du filtre de traitement demandé (par exemple :
- $img : string
-
Chemin de l'image ou texte contenant une balise img
- $taille : int
-
Largeur désirée
- $taille_y : int
-
Hauteur désirée
- $force : bool
- $process : string = 'AUTO'
-
Librairie graphique à utiliser (gd2 ou autre fournie par plugin). AUTO utilise la librairie sélectionnée dans la configuration.
Tags
Return values
string —Code HTML de la balise img produite