API Documentation
Table of Contents
Constants
- _EZPALETTE_CIE_EPSILON = 0.008855999999999999
- Constantes de la CIE définissant le raccord entre la partie cubique et la partie linéaire des fonctions de transfert de CIE L*a*b* et CIE L*u*v*.
- _EZPALETTE_CIE_KAPPA = 903.3
- _EZPALETTE_COLLECTION_METADONNEES = ['titre', 'version', 'source', 'licence', 'description', 'recommandations']
- Métadonnées d'une collection que l'utilisateur renseigne lui-même.
- _EZPALETTE_D65_X = 95.047
- Coordonnées XYZ du blanc de référence D65, sur l'échelle 0-100.
- _EZPALETTE_D65_Y = 100.0
- _EZPALETTE_D65_Z = 108.883
- _EZPALETTE_GAMUT_TOLERANCE = 0.5 / 255
- Tolérance retenue pour juger qu'une couleur tient dans le gamut sRGB, exprimée en composante normalisée.
- _EZPALETTE_IMPRESSION_NB_ETENDUE = 40.0
- Amplitude de clarté minimale, en points, exigée d'un nuancier destiné à l'impression en noir et blanc.
- _EZPALETTE_TYPE_CYCLIQUE = 'cyclic'
- _EZPALETTE_TYPE_DIVERGENTE = 'diverging'
- _EZPALETTE_TYPE_PERCEPTION_SEQUENTIELLE = 'perceptual_sequential'
- _EZPALETTE_TYPE_QUALITATIVE = 'qualitative'
- _EZPALETTE_TYPE_SEQUENTIELLE = 'sequential'
- _EZPALETTE_TYPES = [\_EZPALETTE_TYPE_SEQUENTIELLE, \_EZPALETTE_TYPE_DIVERGENTE, \_EZPALETTE_TYPE_QUALITATIVE, \_EZPALETTE_TYPE_CYCLIQUE, \_EZPALETTE_TYPE_PERCEPTION_SEQUENTIELLE]
Functions
- action_recharger_palette_collections_dist() : void
- Cette action permet à l'utilisateur de recharger en base de données, de façon sécurisée, les collections de palettes standard à partir de leur fichier JSON.
- ezpalette_declarer_tables_interfaces() : array<string|int, mixed>
- Déclaration des informations tierces (alias, traitements, jointures, etc) sur les tables de la base de données modifiées ou ajoutées par le plugin.
- ezpalette_declarer_tables_objets_sql() : array<string|int, mixed>
- Déclaration des nouvelles tables de la base de données propres au plugin.
- ezpalette_upgrade() : void
- Installation du schéma de données propre au plugin et gestion des migrations suivant les évolutions du schéma.
- ezpalette_vider_tables() : void
- Suppression de l'ensemble du schéma de données propre au plugin.
- ezpalette_configurer() : array<string|int, mixed>
- Renvoie la configuration statique (non éditable) du plugin.
- ezpalette_autoriser() : void
- Fonction appelée par le pipeline `autoriser`, dont la seule existence déclare le fichier.
- autoriser_palettes_voir_dist() : bool
- Autorisation d'accéder à la page des palettes.
- autoriser_palettes_menu_dist() : bool
- Autorisation d'afficher l'entrée de menu du plugin, calée sur celle de voir la page.
- autoriser_palettecollections_voir_dist() : bool
- Autorisation de voir la liste des collections de palettes.
- autoriser_palettecollections_charger_dist() : bool
- Autorisation de recharger les collections standard depuis leurs fichiers JSON.
- autoriser_palette_voir_dist() : bool
- Autorisation de voir une palette.
- autoriser_palette_creer_dist() : bool
- Autorisation de créer une palette.
- autoriser_palette_modifier_dist() : bool
- Autorisation de modifier une palette.
- autoriser_palette_supprimer_dist() : bool
- Autorisation de supprimer une palette, calée sur celle de la modifier.
- balise_PALETTE_APERCU_dist() : Champ
- Compile la balise `#PALETTE_APERCU` qui renvoie l'aperçu SVG d'une palette, soit ses couleurs juxtaposées en bandes de largeur égale.
- balise_PALETTE_LEGENDE_dist() : Champ
- Compile la balise `#PALETTE_LEGENDE` qui renvoie la légende HTML d'une palette, soit un bandeau de couleurs accompagné de ses intitulés.
- balise_PALETTE_EXPORT_dist() : Champ
- Compile la balise `#PALETTE_EXPORT` qui renvoie une palette mise en forme pour un usage extérieur.
- balise_PALETTE_CRITERES_dist() : Champ
- Compile la balise `#PALETTE_CRITERES` qui traduit un jeu de filtres en critères SQL, directement utilisables comme argument `where` d'une boucle.
- balise_PALETTE_SCHEMAS_dist() : Champ
- Compile la balise `#PALETTE_SCHEMAS` qui renvoie la liste des schémas, c'est-à-dire les palettes regroupées par parti pris chromatique. Elle est faite pour alimenter une boucle `DATA`, le schéma n'étant pas une table.
- colorimetrie_srgb_lineariser() : float
- Linéarise une composante sRGB en supprimant sa correction gamma.
- colorimetrie_srgb_corriger_gamma() : float
- Applique la correction gamma à une composante sRGB linéaire.
- colorimetrie_hex_to_dec() : array<string|int, mixed>
- Convertit une couleur hexadécimale en composantes RGB décimales.
- colorimetrie_dec_to_hex() : string
- Convertit des composantes RGB décimales en couleur hexadécimale.
- colorimetrie_hex_to_hsl() : array<string|int, mixed>
- Convertit une couleur hexadécimale en HSL.
- colorimetrie_hsl_to_hex() : string
- Convertit des coordonnées HSL en couleur hexadécimale.
- colorimetrie_rgb_to_xyz() : array<string|int, mixed>
- Convertit des composantes RGB décimales en coordonnées XYZ, en prenant D65 pour blanc de référence.
- colorimetrie_xyz_to_srgb_normalise() : array<string|int, mixed>
- Convertit des coordonnées XYZ en composantes sRGB normalisées, sans écrêtage.
- colorimetrie_xyz_to_rgb() : array<string|int, mixed>
- Convertit des coordonnées XYZ en composantes RGB décimales, en prenant D65 pour blanc de référence.
- colorimetrie_xyz_to_lab() : array<string|int, mixed>
- Convertit des coordonnées XYZ en CIE L*a*b*, en prenant D65 pour blanc de référence.
- colorimetrie_lab_to_xyz() : array<string|int, mixed>
- Convertit des coordonnées CIE L*a*b* en XYZ, en prenant D65 pour blanc de référence.
- colorimetrie_xyz_to_luv() : array<string|int, mixed>
- Convertit des coordonnées XYZ en CIE L*u*v*, en prenant D65 pour blanc de référence.
- colorimetrie_luv_to_xyz() : array<string|int, mixed>
- Convertit des coordonnées CIE L*u*v* en XYZ, en prenant D65 pour blanc de référence.
- colorimetrie_cartesien_to_polaire() : array<string|int, mixed>
- Convertit des coordonnées cartésiennes en coordonnées polaires (chroma et teinte).
- colorimetrie_lab_to_polarlab() : array<string|int, mixed>
- Convertit des coordonnées CIE L*a*b* en polarLAB.
- colorimetrie_polarlab_to_lab() : array<string|int, mixed>
- Convertit des coordonnées polarLAB en CIE L*a*b*.
- colorimetrie_luv_to_polarluv() : array<string|int, mixed>
- Convertit des coordonnées CIE L*u*v* en polarLUV, c'est-à-dire en HCL.
- colorimetrie_polarluv_to_luv() : array<string|int, mixed>
- Convertit des coordonnées polarLUV, c'est-à-dire HCL, en CIE L*u*v*.
- colorimetrie_xyz_to_oklab() : array<string|int, mixed>
- Convertit des coordonnées XYZ en Oklab, en prenant D65 pour blanc de référence.
- colorimetrie_oklab_to_xyz() : array<string|int, mixed>
- Convertit des coordonnées Oklab en XYZ, en prenant D65 pour blanc de référence.
- colorimetrie_oklab_to_oklch() : array<string|int, mixed>
- Convertit des coordonnées Oklab en Oklch, leur forme polaire.
- colorimetrie_oklch_to_oklab() : array<string|int, mixed>
- Convertit des coordonnées Oklch en Oklab.
- colorimetrie_hex_to_lab() : array<string|int, mixed>
- Convertit une couleur hexadécimale en CIE L*a*b*.
- colorimetrie_hex_to_polarlab() : array<string|int, mixed>
- Convertit une couleur hexadécimale en polarLAB.
- colorimetrie_polarlab_to_hex() : string
- Convertit des coordonnées polarLAB en couleur hexadécimale.
- colorimetrie_hex_to_hcl() : array<string|int, mixed>
- Convertit une couleur hexadécimale en HCL, c'est-à-dire en polarLUV.
- colorimetrie_hcl_to_hex() : string
- Convertit des coordonnées HCL, c'est-à-dire polarLUV, en couleur hexadécimale.
- colorimetrie_hex_to_oklab() : array<string|int, mixed>
- Convertit une couleur hexadécimale en Oklab.
- colorimetrie_oklab_to_hex() : string
- Convertit des coordonnées Oklab en couleur hexadécimale.
- colorimetrie_hex_to_oklch() : array<string|int, mixed>
- Convertit une couleur hexadécimale en Oklch.
- colorimetrie_oklch_to_hex() : string
- Convertit des coordonnées Oklch en couleur hexadécimale.
- colorimetrie_polarlab_est_dans_gamut() : bool
- Indique si une couleur exprimée en polarLAB est représentable en sRGB.
- colorimetrie_polarlab_chroma_maximal() : float
- Calcule le chroma le plus élevé qu'une teinte et une clarté données autorisent en sRGB.
- colorimetrie_interpoler() : string
- Interpole entre deux couleurs, dans l'espace demandé.
- colorimetrie_simuler_deficience() : string
- Simule la perception d'une couleur par une personne dont la vision des couleurs est déficiente.
- colorimetrie_luminance_relative() : float
- Calcule la luminance relative d'une couleur, telle que définie par les WCAG.
- colorimetrie_delta_e_76() : float
- Calcule l'écart perceptuel ΔE*ab entre deux couleurs, selon la formule CIE 1976.
- colorimetrie_contraste_wcag() : float
- Calcule le rapport de contraste entre deux couleurs, tel que défini par les WCAG.
- colorimetrie_lab_delta_e_2000() : float
- Calcule l'écart perceptuel ΔE₀₀ entre deux couleurs exprimées en CIE L*a*b*, selon la formule CIEDE2000.
- colorimetrie_delta_e_2000() : float
- Calcule l'écart perceptuel ΔE₀₀ entre deux couleurs hexadécimales, selon la formule CIEDE2000.
- nuancier_teinte_unique() : array<string|int, mixed>
- Produit un nuancier de teintes uniques en faisant varier la luminosité et la saturation d'une couleur.
- nuancier_teinte_bipolaire() : array<string|int, mixed>
- Produit un nuancier bipolaire, divergeant depuis une couleur centrale vers deux couleurs extrêmes.
- nuancier_couleur_melangee() : array<string|int, mixed>
- Produit un nuancier par mélange progressif de deux couleurs.
- nuancier_analogique() : array<string|int, mixed>
- Produit un nuancier analogique, composé de teintes voisines sur le cercle chromatique.
- nuancier_complementaire() : array<string|int, mixed>
- Produit un nuancier complémentaire, réunissant les variations d'une couleur et celles de son opposée sur le cercle chromatique.
- nuancier_triadique() : array<string|int, mixed>
- Produit un nuancier triadique, réunissant les variations de trois teintes espacées de 120° sur le cercle chromatique.
- nuancier_sequentiel() : array<string|int, mixed>
- Produit un nuancier séquentiel en interpolant la clarté et le chroma à teinte constante.
- nuancier_divergent() : array<string|int, mixed>
- Produit un nuancier divergent, joignant deux teintes extrêmes en passant par un point neutre.
- nuancier_qualitatif() : array<string|int, mixed>
- Produit un nuancier qualitatif, composé de teintes réparties régulièrement sur le cercle chromatique à chroma constant.
- nuancier_multi_teintes() : array<string|int, mixed>
- Produit un nuancier multi-teintes, en déclinant chaque teinte fournie sur une plage de clarté.
- nuancier_inverser() : array<string|int, mixed>
- Renverse l'ordre des couleurs d'un nuancier.
- nuancier_extraire() : array<string|int, mixed>
- Extrait d'un nuancier un sous-ensemble de couleurs réparties régulièrement, extrémités comprises.
- nuancier_uniformite() : null|array<string|int, mixed>
- Mesure l'uniformité perceptuelle d'un nuancier, c'est-à-dire la régularité des écarts entre ses couleurs consécutives.
- nuancier_contraste_minimal() : null|float
- Détermine le rapport de contraste le plus faible entre les couleurs consécutives d'un nuancier.
- nuancier_progression_clarte() : null|array<string|int, mixed>
- Décrit la progression de clarté d'un nuancier.
- nuancier_verifier_daltonisme() : null|array<string|int, mixed>
- Vérifie qu'un nuancier reste lisible pour les principales déficiences de la vision des couleurs.
- nuancier_couleur_a_pourcentage() : null|string
- Renvoie la couleur d'un nuancier correspondant à une position exprimée en pourcentage.
- nuancier_couleur_pour_valeur() : null|string
- Renvoie la couleur d'un nuancier représentant une valeur située dans un intervalle donné.
- palette_identifier() : array<string|int, mixed>
- Traduit la désignation d'une palette en critères SQL.
- palette_lire() : mixed
- Retourne, pour une palette donnée, la description complète ou seulement un champ précis.
- palette_repertorier() : array<string|int, mixed>
- Répertorie les palettes répondant à des critères donnés.
- palette_criteres() : array<string|int, mixed>
- Traduit un jeu de filtres en critères SQL.
- palette_repertorier_schemas() : array<string|int, mixed>
- Répertorie les schémas, c'est-à-dire les palettes regroupées par parti pris chromatique.
- palette_existe() : bool
- Indique si une palette existe.
- palette_recommander() : array<string|int, mixed>
- Recommande les schémas les mieux adaptés à un usage donné.
- palette_qualifier() : array<string|int, mixed>
- Qualifie un nuancier et rend les valeurs à consigner sur la palette qui le porte.
- palette_creer() : null|int
- Crée une palette personnelle, ou met à jour celle qui occupe déjà le même triplet identifiant.
- palette_modifier() : bool
- Modifie une palette personnelle.
- palette_supprimer() : bool
- Supprime une palette personnelle.
- palette_dupliquer() : null|int
- Duplique une palette vers une collection non protégée, ce qui permet de partir d'une palette standard pour en dériver une variante personnelle.
- palette_collection_charger() : array<string|int, mixed>
- Charge ou recharge en base de données les collections des palettes de couleurs standard à partir des fichiers JSON correspondants.
- palette_collection_decharger() : array<string|int, mixed>
- Vide en base de données les collections des palettes de couleurs standard (non éditables) en préservant les palettes personnelles.
- palette_collection_repertorier() : array<string|int, mixed>
- Liste toutes les descriptions des collections disponibles ou seulement celles filtrées selon un ou plusieurs attributs.
- palette_collection_est_protegee() : bool
- Indique si une collection est protégée, c'est-à-dire si son contenu est administré par le plugin et non par l'utilisateur.
- palette_collection_normaliser_identifiant() : string
- Vérifie qu'un identifiant de collection est utilisable et le normalise.
- palette_collection_recalculer() : array<string|int, mixed>
- Recalcule les agrégats d'une collection à partir des palettes réellement présentes en base.
- palette_collection_creer() : array<string|int, mixed>
- Crée une collection personnelle.
- palette_collection_modifier() : array<string|int, mixed>
- Modifie les métadonnées d'une collection personnelle.
- palette_collection_supprimer() : array<string|int, mixed>
- Supprime une collection personnelle.
- palette_restituer_nuancier() : array<string|int, mixed>
- Extrait le nuancier d'une palette et vérifie qu'il est exploitable.
- palette_restituer_identifiant() : string
- Construit l'identifiant lisible d'une palette, utilisable comme préfixe de classe ou de variable CSS.
- palette_restituer_export() : string
- Exporte une palette dans un format d'échange.
- palette_restituer_couleur() : string
- Écrit une couleur dans la notation CSS demandée.
- palette_restituer_css() : string
- Produit une feuille de style déclarant une classe par couleur de la palette.
- palette_restituer_css_variables() : string
- Produit une feuille de style déclarant une variable CSS par couleur de la palette.
- palette_restituer_legende() : string
- Produit une légende HTML représentant la palette sous forme de bandeau de couleurs.
- palette_restituer_svg() : string
- Produit un aperçu SVG de la palette, sous forme de bandes juxtaposées.
Constants
_EZPALETTE_CIE_EPSILON
Constantes de la CIE définissant le raccord entre la partie cubique et la partie linéaire des fonctions de transfert de CIE L*a*b* et CIE L*u*v*.
public
mixed
_EZPALETTE_CIE_EPSILON
= 0.008855999999999999
_EZPALETTE_CIE_KAPPA
public
mixed
_EZPALETTE_CIE_KAPPA
= 903.3
_EZPALETTE_COLLECTION_METADONNEES
Métadonnées d'une collection que l'utilisateur renseigne lui-même.
public
mixed
_EZPALETTE_COLLECTION_METADONNEES
= ['titre', 'version', 'source', 'licence', 'description', 'recommandations']
Tout ce qui n'y figure pas est soit un attribut de contrôle géré par le plugin - l'identifiant, le drapeau
editable, la date de mise à jour - soit un agrégat recalculé depuis les palettes présentes. Une interface
de saisie n'a donc à proposer que ces six champs.
_EZPALETTE_D65_X
Coordonnées XYZ du blanc de référence D65, sur l'échelle 0-100.
public
mixed
_EZPALETTE_D65_X
= 95.047
_EZPALETTE_D65_Y
public
mixed
_EZPALETTE_D65_Y
= 100.0
_EZPALETTE_D65_Z
public
mixed
_EZPALETTE_D65_Z
= 108.883
_EZPALETTE_GAMUT_TOLERANCE
Tolérance retenue pour juger qu'une couleur tient dans le gamut sRGB, exprimée en composante normalisée.
public
mixed
_EZPALETTE_GAMUT_TOLERANCE
= 0.5 / 255
Elle vaut un demi-niveau de quantification sur huit bits : en deçà, l'écrêtage ne modifie pas l'octet rendu, et la couleur est donc représentable en pratique. Un seuil infinitésimal écarterait des couleurs qui s'affichent pourtant à l'identique.
_EZPALETTE_IMPRESSION_NB_ETENDUE
Amplitude de clarté minimale, en points, exigée d'un nuancier destiné à l'impression en noir et blanc.
public
mixed
_EZPALETTE_IMPRESSION_NB_ETENDUE
= 40.0
Une fois la couleur retirée, il ne reste que la clarté pour distinguer deux classes : un nuancier qui n'en balaie qu'une portion étroite devient un aplat uniforme. Les séquentielles de ColorBrewer s'étendent de 61 à 82 points, ses divergentes de 49 à 67 : le seuil retenu les admet toutes et écarte les nuanciers qui ne jouent que sur la teinte.
Tags
_EZPALETTE_TYPE_CYCLIQUE
public
mixed
_EZPALETTE_TYPE_CYCLIQUE
= 'cyclic'
_EZPALETTE_TYPE_DIVERGENTE
public
mixed
_EZPALETTE_TYPE_DIVERGENTE
= 'diverging'
_EZPALETTE_TYPE_PERCEPTION_SEQUENTIELLE
public
mixed
_EZPALETTE_TYPE_PERCEPTION_SEQUENTIELLE
= 'perceptual_sequential'
_EZPALETTE_TYPE_QUALITATIVE
public
mixed
_EZPALETTE_TYPE_QUALITATIVE
= 'qualitative'
_EZPALETTE_TYPE_SEQUENTIELLE
public
mixed
_EZPALETTE_TYPE_SEQUENTIELLE
= 'sequential'
_EZPALETTE_TYPES
public
mixed
_EZPALETTE_TYPES
= [\_EZPALETTE_TYPE_SEQUENTIELLE, \_EZPALETTE_TYPE_DIVERGENTE, \_EZPALETTE_TYPE_QUALITATIVE, \_EZPALETTE_TYPE_CYCLIQUE, \_EZPALETTE_TYPE_PERCEPTION_SEQUENTIELLE]
Functions
action_recharger_palette_collections_dist()
Cette action permet à l'utilisateur de recharger en base de données, de façon sécurisée, les collections de palettes standard à partir de leur fichier JSON.
action_recharger_palette_collections_dist() : void
Cette action est réservée aux utilisateurs pouvant manipuler les collections de Palette Factory. Elle ne nécessite aucun argument.
Tags
ezpalette_declarer_tables_interfaces()
Déclaration des informations tierces (alias, traitements, jointures, etc) sur les tables de la base de données modifiées ou ajoutées par le plugin.
ezpalette_declarer_tables_interfaces(array<string|int, mixed> $interface) : array<string|int, mixed>
Le plugin se contente de déclarer les alias des tables et quelques traitements.
Parameters
- $interface : array<string|int, mixed>
-
Tableau global des informations tierces sur les tables de la base de données
Tags
Return values
array<string|int, mixed> —Tableau fourni en entrée et mis à jour avec les nouvelles informations
ezpalette_declarer_tables_objets_sql()
Déclaration des nouvelles tables de la base de données propres au plugin.
ezpalette_declarer_tables_objets_sql(array<string|int, mixed> $tables) : array<string|int, mixed>
Le plugin déclare une nouvelle table :
spip_palettes, qui contient les éléments descriptifs des palettes de couleurs.
Parameters
- $tables : array<string|int, mixed>
-
Tableau global décrivant la structure des tables de la base de données
Tags
Return values
array<string|int, mixed> —Tableau fourni en entrée et mis à jour avec les nouvelles déclarations
ezpalette_upgrade()
Installation du schéma de données propre au plugin et gestion des migrations suivant les évolutions du schéma.
ezpalette_upgrade(string $nom_meta_base_version, string $version_cible) : void
Le plugin crée la table des palettes et charge la configuration des palettes standard.
Parameters
- $nom_meta_base_version : string
- $version_cible : string
Tags
ezpalette_vider_tables()
Suppression de l'ensemble du schéma de données propre au plugin.
ezpalette_vider_tables(string $nom_meta_base_version) : void
Parameters
- $nom_meta_base_version : string
Tags
ezpalette_configurer()
Renvoie la configuration statique (non éditable) du plugin.
ezpalette_configurer() : array<string|int, mixed>
Return values
array<string|int, mixed> —Tableau de la configuration demandée.
ezpalette_autoriser()
Fonction appelée par le pipeline `autoriser`, dont la seule existence déclare le fichier.
ezpalette_autoriser() : void
autoriser_palettes_voir_dist()
Autorisation d'accéder à la page des palettes.
autoriser_palettes_voir_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
Parameters
- $faire : string
-
L'action :
voir - $type : string
-
Le type :
_palettes, qui n'est pas un objet au sens de SPIP - $id : int
-
Inutilisé
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Return values
boolautoriser_palettes_menu_dist()
Autorisation d'afficher l'entrée de menu du plugin, calée sur celle de voir la page.
autoriser_palettes_menu_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
Parameters
- $faire : string
-
L'action :
menu - $type : string
-
Le type :
_palettes - $id : int
-
Inutilisé
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Return values
boolautoriser_palettecollections_voir_dist()
Autorisation de voir la liste des collections de palettes.
autoriser_palettecollections_voir_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
Parameters
- $faire : string
-
L'action :
voir - $type : string
-
Le type :
_palettecollections - $id : int
-
Inutilisé
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Return values
boolautoriser_palettecollections_charger_dist()
Autorisation de recharger les collections standard depuis leurs fichiers JSON.
autoriser_palettecollections_charger_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
L'opération vide et réécrit la table pour les collections concernées : elle est réservée aux administrateurs
complets. Jusqu'ici l'autorisation n'était pas déclarée et le contrôle ne tenait qu'à la retombée sur
autoriser_defaut_dist(), ce qui produisait le bon résultat mais par accident.
Parameters
- $faire : string
-
L'action :
charger - $type : string
-
Le type :
_palettecollections - $id : int
-
Inutilisé
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Return values
boolautoriser_palette_voir_dist()
Autorisation de voir une palette.
autoriser_palette_voir_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
Parameters
- $faire : string
-
L'action :
voir - $type : string
-
Le type d'objet :
palette - $id : int
-
Identifiant de la palette
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Return values
boolautoriser_palette_creer_dist()
Autorisation de créer une palette.
autoriser_palette_creer_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
Parameters
- $faire : string
-
L'action :
creer - $type : string
-
Le type d'objet :
palette - $id : int
-
Inutilisé
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Return values
boolautoriser_palette_modifier_dist()
Autorisation de modifier une palette.
autoriser_palette_modifier_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
Une palette n'est modifiable que si sa collection ne l'est pas elle-même rechargée depuis un fichier JSON, ce
que porte sa colonne editable.
Parameters
- $faire : string
-
L'action :
modifier - $type : string
-
Le type d'objet :
palette - $id : int
-
Identifiant de la palette
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Tags
Return values
boolautoriser_palette_supprimer_dist()
Autorisation de supprimer une palette, calée sur celle de la modifier.
autoriser_palette_supprimer_dist(string $faire, string $type, int $id, null|array<string|int, mixed>|int $qui, null|array<string|int, mixed> $options) : bool
Parameters
- $faire : string
-
L'action :
supprimer - $type : string
-
Le type d'objet :
palette - $id : int
-
Identifiant de la palette
- $qui : null|array<string|int, mixed>|int
-
L'initiateur de l'action
- $options : null|array<string|int, mixed>
-
Options éventuelles
Return values
boolbalise_PALETTE_APERCU_dist()
Compile la balise `#PALETTE_APERCU` qui renvoie l'aperçu SVG d'une palette, soit ses couleurs juxtaposées en bandes de largeur égale.
balise_PALETTE_APERCU_dist(Champ $p) : Champ
La signature de la balise est : #PALETTE_APERCU{palette[, largeur, hauteur, etiquettes]}.
Parameters
- $p : Champ
-
Pile au niveau de la balise.
Tags
Return values
Champ —Pile complétée par le code à générer.
balise_PALETTE_LEGENDE_dist()
Compile la balise `#PALETTE_LEGENDE` qui renvoie la légende HTML d'une palette, soit un bandeau de couleurs accompagné de ses intitulés.
balise_PALETTE_LEGENDE_dist(Champ $p) : Champ
La signature de la balise est : #PALETTE_LEGENDE{palette[, orientation, titre, classe]}.
Parameters
- $p : Champ
-
Pile au niveau de la balise.
Tags
Return values
Champ —Pile complétée par le code à générer.
balise_PALETTE_EXPORT_dist()
Compile la balise `#PALETTE_EXPORT` qui renvoie une palette mise en forme pour un usage extérieur.
balise_PALETTE_EXPORT_dist(Champ $p) : Champ
La signature de la balise est : #PALETTE_EXPORT{palette[, format]}.
Parameters
- $p : Champ
-
Pile au niveau de la balise.
Tags
Return values
Champ —Pile complétée par le code à générer.
balise_PALETTE_CRITERES_dist()
Compile la balise `#PALETTE_CRITERES` qui traduit un jeu de filtres en critères SQL, directement utilisables comme argument `where` d'une boucle.
balise_PALETTE_CRITERES_dist(Champ $p) : Champ
La signature de la balise est : #PALETTE_CRITERES{filtres}.
Elle sert aux seuils de qualité — contraste et amplitude de clarté — qui ne se comparent pas à l'identique et ne
peuvent donc pas s'écrire en critère optionnel {champ?}. Les valeurs vides sont écartées avant traduction :
un filtre non renseigné dans un formulaire ne doit ajouter aucune condition.
Parameters
- $p : Champ
-
Pile au niveau de la balise.
Tags
Return values
Champ —Pile complétée par le code à générer.
balise_PALETTE_SCHEMAS_dist()
Compile la balise `#PALETTE_SCHEMAS` qui renvoie la liste des schémas, c'est-à-dire les palettes regroupées par parti pris chromatique. Elle est faite pour alimenter une boucle `DATA`, le schéma n'étant pas une table.
balise_PALETTE_SCHEMAS_dist(Champ $p) : Champ
La signature de la balise est : #PALETTE_SCHEMAS{[filtres]}.
Parameters
- $p : Champ
-
Pile au niveau de la balise.
Tags
Return values
Champ —Pile complétée par le code à générer.
colorimetrie_srgb_lineariser()
Linéarise une composante sRGB en supprimant sa correction gamma.
colorimetrie_srgb_lineariser(float $coordonnee) : float
La fonction opère sur une seule composante (R, G ou B), pas sur une couleur complète, et travaille en valeurs
normalisées : elle attend un flottant dans l'intervalle [0, 1] et rend un flottant dans le même intervalle. La
normalisation est donc à la charge de l'appelant, qui divise la composante 0-255 par 255 : pour la couleur
rgb(150, 160, 14), on appelle colorimetrie_srgb_lineariser(150 / 255), etc.
La valeur d'entrée est une valeur encodée, à peu près perceptuelle, telle que stockée dans un fichier ou une
feuille de style ; la valeur de sortie est proportionnelle à l'intensité lumineuse. Cette conversion est un
préalable obligatoire à tout calcul linéaire sur la lumière : passage à XYZ et calcul de la luminance relative.
Ainsi, 14 / 255 vaut 0,0549 en encodé mais seulement 0,0044 en lumière.
En pratique, la fonction n'est pas appelée directement : colorimetrie_rgb_to_xyz() et colorimetrie_luminance_relative()
s'en chargent pour les trois composantes.
Parameters
- $coordonnee : float
-
Composante sRGB encodée et normalisée, dans l'intervalle [0, 1]
Tags
Return values
float —Composante linéarisée, dans l'intervalle [0, 1]
colorimetrie_srgb_corriger_gamma()
Applique la correction gamma à une composante sRGB linéaire.
colorimetrie_srgb_corriger_gamma(float $coordonnee) : float
Réciproque exacte de colorimetrie_srgb_lineariser() : elle attend une composante linéaire normalisée et rend la
composante encodée correspondante, toujours normalisée. Il revient à l'appelant de la dénormaliser en la
multipliant par 255.
Une couleur hors du gamut sRGB produit ici des composantes linéaires négatives, prises en charge par la partie
linéaire de la fonction : elles traversent la conversion sans produire de NAN et sont écrêtées plus loin, au
moment de la dénormalisation.
Parameters
- $coordonnee : float
-
Composante sRGB linéaire normalisée, dans l'intervalle [0, 1]
Tags
Return values
float —Composante encodée en gamma, dans l'intervalle [0, 1]
colorimetrie_hex_to_dec()
Convertit une couleur hexadécimale en composantes RGB décimales.
colorimetrie_hex_to_dec(string $hex) : array<string|int, mixed>
C'est la porte d'entrée de tout le fichier : chaque chaîne de conversion partant d'une couleur hexadécimale commence ici. Elle est donc la seule à valider son entrée, ce qui dispense les autres de le faire.
Sont acceptées les notations sur trois ou six caractères hexadécimaux, avec ou sans # et quelle que soit la
casse. Toute autre entrée rend le noir et est journalisée : elle ne peut pas être devinée, et la laisser passer
serait pire. hexdec() en tirerait en effet une couleur en ignorant silencieusement les caractères invalides —
bonjour donnerait rgb(11, 0, 0) — au prix, depuis PHP 8.3, d'une dépréciation par composante.
Parameters
- $hex : string
-
Couleur hexadécimale, avec ou sans #, sur 3 ou 6 caractères
Tags
Return values
array<string|int, mixed> —Composantes RGB, index r, g et b, chacune dans l'intervalle 0-255. Le noir si l'entrée n'est
pas une couleur hexadécimale
colorimetrie_dec_to_hex()
Convertit des composantes RGB décimales en couleur hexadécimale.
colorimetrie_dec_to_hex(int $r, int $g, int $b) : string
Les composantes sont ramenées dans l'intervalle 0-255 : une couleur hors du gamut sRGB est donc écrêtée sur le bord du gamut plutôt que rejetée.
Parameters
- $r : int
-
Rouge, 0-255
- $g : int
-
Vert, 0-255
- $b : int
-
Bleu, 0-255
Return values
string —Couleur hexadécimale au format #RRGGBB
colorimetrie_hex_to_hsl()
Convertit une couleur hexadécimale en HSL.
colorimetrie_hex_to_hsl(string $hex) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur hexadécimale
Return values
array<string|int, mixed> —Coordonnées HSL :
- index
h: teinte, 0-360 - index
s: saturation, 0-1 - index
l: luminosité, 0-1
colorimetrie_hsl_to_hex()
Convertit des coordonnées HSL en couleur hexadécimale.
colorimetrie_hsl_to_hex(float $h, float $s, float $l) : string
Parameters
- $h : float
-
Teinte, 0-360
- $s : float
-
Saturation, 0-1
- $l : float
-
Luminosité, 0-1
Return values
string —Couleur hexadécimale au format #RRGGBB
colorimetrie_rgb_to_xyz()
Convertit des composantes RGB décimales en coordonnées XYZ, en prenant D65 pour blanc de référence.
colorimetrie_rgb_to_xyz(int $r, int $g, int $b) : array<string|int, mixed>
Parameters
- $r : int
-
Rouge, 0-255
- $g : int
-
Vert, 0-255
- $b : int
-
Bleu, 0-255
Return values
array<string|int, mixed> —Coordonnées XYZ sur l'échelle 0-100, index x, y et z
colorimetrie_xyz_to_srgb_normalise()
Convertit des coordonnées XYZ en composantes sRGB normalisées, sans écrêtage.
colorimetrie_xyz_to_srgb_normalise(float $x, float $y, float $z) : array<string|int, mixed>
Étape commune à colorimetrie_xyz_to_rgb() et aux fonctions d'interrogation du gamut : elle applique la matrice XYZ
vers sRGB, puis la correction gamma, et rend les trois composantes telles quelles.
Une couleur représentable en sRGB a ses trois composantes dans l'intervalle [0, 1] ; une composante hors de cet
intervalle signale une couleur hors du gamut. C'est précisément l'information que l'écrêtage de
colorimetrie_xyz_to_rgb() détruit, et la raison d'être de cette fonction.
Parameters
- $x : float
-
Coordonnée X, 0-100
- $y : float
-
Coordonnée Y, 0-100
- $z : float
-
Coordonnée Z, 0-100
Tags
Return values
array<string|int, mixed> —Composantes sRGB normalisées et non écrêtées, index r, g et b
colorimetrie_xyz_to_rgb()
Convertit des coordonnées XYZ en composantes RGB décimales, en prenant D65 pour blanc de référence.
colorimetrie_xyz_to_rgb(float $x, float $y, float $z) : array<string|int, mixed>
Une couleur hors du gamut sRGB est écrêtée composante par composante. L'opération n'est pas neutre : elle
déplace la teinte et écrase le chroma, sans le signaler. Pour construire une rampe régulière, interroger le
gamut au préalable avec colorimetrie_polarlab_chroma_maximal().
Parameters
- $x : float
-
Coordonnée X, 0-100
- $y : float
-
Coordonnée Y, 0-100
- $z : float
-
Coordonnée Z, 0-100
Tags
Return values
array<string|int, mixed> —Composantes [r, g, b] entières, écrêtées dans l'intervalle 0-255
colorimetrie_xyz_to_lab()
Convertit des coordonnées XYZ en CIE L*a*b*, en prenant D65 pour blanc de référence.
colorimetrie_xyz_to_lab(float $x, float $y, float $z) : array<string|int, mixed>
Parameters
- $x : float
-
Coordonnée X, 0-100
- $y : float
-
Coordonnée Y, 0-100
- $z : float
-
Coordonnée Z, 0-100
Return values
array<string|int, mixed> —Coordonnées LAB, index l (0-100), a et b
colorimetrie_lab_to_xyz()
Convertit des coordonnées CIE L*a*b* en XYZ, en prenant D65 pour blanc de référence.
colorimetrie_lab_to_xyz(float $l, float $a, float $b) : array<string|int, mixed>
Parameters
- $l : float
-
Clarté L*, 0-100
- $a : float
-
Coordonnée a*
- $b : float
-
Coordonnée b*
Return values
array<string|int, mixed> —Coordonnées XYZ sur l'échelle 0-100, index x, y et z
colorimetrie_xyz_to_luv()
Convertit des coordonnées XYZ en CIE L*u*v*, en prenant D65 pour blanc de référence.
colorimetrie_xyz_to_luv(float $x, float $y, float $z) : array<string|int, mixed>
Parameters
- $x : float
-
Coordonnée X, 0-100
- $y : float
-
Coordonnée Y, 0-100
- $z : float
-
Coordonnée Z, 0-100
Return values
array<string|int, mixed> —Coordonnées LUV, index l (0-100), u et v
colorimetrie_luv_to_xyz()
Convertit des coordonnées CIE L*u*v* en XYZ, en prenant D65 pour blanc de référence.
colorimetrie_luv_to_xyz(float $l, float $u, float $v) : array<string|int, mixed>
Parameters
- $l : float
-
Clarté L*, 0-100
- $u : float
-
Coordonnée u*
- $v : float
-
Coordonnée v*
Return values
array<string|int, mixed> —Coordonnées XYZ sur l'échelle 0-100, index x, y et z
colorimetrie_cartesien_to_polaire()
Convertit des coordonnées cartésiennes en coordonnées polaires (chroma et teinte).
colorimetrie_cartesien_to_polaire(float $abscisse, float $ordonnee) : array<string|int, mixed>
Fonction interne commune au polarLAB et au polarLUV, qui ne diffèrent que par le plan sur lequel la transformation polaire est appliquée.
Parameters
- $abscisse : float
-
Coordonnée a*, u* ou a
- $ordonnee : float
-
Coordonnée b*, v* ou b
Return values
array<string|int, mixed> —Coordonnées polaires, index c (chroma) et h (teinte en degrés, 0-360)
colorimetrie_lab_to_polarlab()
Convertit des coordonnées CIE L*a*b* en polarLAB.
colorimetrie_lab_to_polarlab(float $l, float $a, float $b) : array<string|int, mixed>
Parameters
- $l : float
-
Clarté L*, 0-100
- $a : float
-
Coordonnée a*
- $b : float
-
Coordonnée b*
Return values
array<string|int, mixed> —Coordonnées polarLAB, index l, c (chroma) et h (teinte, 0-360)
colorimetrie_polarlab_to_lab()
Convertit des coordonnées polarLAB en CIE L*a*b*.
colorimetrie_polarlab_to_lab(float $h, float $c, float $l) : array<string|int, mixed>
Parameters
- $h : float
-
Teinte, 0-360
- $c : float
-
Chroma
- $l : float
-
Clarté L*, 0-100
Return values
array<string|int, mixed> —Coordonnées LAB, index l, a et b
colorimetrie_luv_to_polarluv()
Convertit des coordonnées CIE L*u*v* en polarLUV, c'est-à-dire en HCL.
colorimetrie_luv_to_polarluv(float $l, float $u, float $v) : array<string|int, mixed>
Parameters
- $l : float
-
Clarté L*, 0-100
- $u : float
-
Coordonnée u*
- $v : float
-
Coordonnée v*
Return values
array<string|int, mixed> —Coordonnées HCL, index l, c (chroma) et h (teinte, 0-360)
colorimetrie_polarluv_to_luv()
Convertit des coordonnées polarLUV, c'est-à-dire HCL, en CIE L*u*v*.
colorimetrie_polarluv_to_luv(float $h, float $c, float $l) : array<string|int, mixed>
Parameters
- $h : float
-
Teinte, 0-360
- $c : float
-
Chroma
- $l : float
-
Clarté L*, 0-100
Return values
array<string|int, mixed> —Coordonnées LUV, index l, u et v
colorimetrie_xyz_to_oklab()
Convertit des coordonnées XYZ en Oklab, en prenant D65 pour blanc de référence.
colorimetrie_xyz_to_oklab(float $x, float $y, float $z) : array<string|int, mixed>
Oklab poursuit le même but que CIE Lab* — une distance euclidienne qui approche la distance perçue — mais son
ajustement est plus récent et corrige deux défauts bien identifiés de son aîné : la teinte des bleus dérive vers
le violet lorsqu'on éclaircit, et les dégradés passant par le bleu virent au violet en leur milieu. C'est
l'espace que retient CSS pour ses fonctions oklab() et oklch(), et celui que recommandent aujourd'hui la
plupart des outils pour construire un dégradé.
Ses échelles ne sont pas celles du reste du fichier : la clarté va de 0 à 1 et non de 0 à 100, et les
coordonnées a et b restent comprises entre -0,4 et 0,4 environ. C'est la convention d'Ottosson, reprise
telle quelle par CSS ; la renormaliser sur 0-100 rendrait les valeurs incomparables à toute autre
implémentation, ce qui coûterait plus cher que l'irrégularité.
Parameters
- $x : float
-
Coordonnée X, 0-100
- $y : float
-
Coordonnée Y, 0-100
- $z : float
-
Coordonnée Z, 0-100
Tags
Return values
array<string|int, mixed> —Coordonnées Oklab : index l (clarté, 0-1), a et b
colorimetrie_oklab_to_xyz()
Convertit des coordonnées Oklab en XYZ, en prenant D65 pour blanc de référence.
colorimetrie_oklab_to_xyz(float $l, float $a, float $b) : array<string|int, mixed>
Parameters
- $l : float
-
Clarté, 0-1
- $a : float
-
Coordonnée a
- $b : float
-
Coordonnée b
Return values
array<string|int, mixed> —Coordonnées XYZ sur l'échelle 0-100, index x, y et z
colorimetrie_oklab_to_oklch()
Convertit des coordonnées Oklab en Oklch, leur forme polaire.
colorimetrie_oklab_to_oklch(float $l, float $a, float $b) : array<string|int, mixed>
C'est à Oklab ce que polarLAB est à CIE Lab* : les mêmes couleurs, décrites par une teinte et un chroma
plutôt que par deux coordonnées cartésiennes. C'est la forme qu'expose CSS sous le nom oklch().
Parameters
- $l : float
-
Clarté, 0-1
- $a : float
-
Coordonnée a
- $b : float
-
Coordonnée b
Return values
array<string|int, mixed> —Coordonnées Oklch : index l (clarté, 0-1), c (chroma, 0-0,4 environ) et h (teinte, 0-360)
colorimetrie_oklch_to_oklab()
Convertit des coordonnées Oklch en Oklab.
colorimetrie_oklch_to_oklab(float $h, float $c, float $l) : array<string|int, mixed>
Parameters
- $h : float
-
Teinte, 0-360
- $c : float
-
Chroma, 0-0,4 environ
- $l : float
-
Clarté, 0-1
Return values
array<string|int, mixed> —Coordonnées Oklab, index l, a et b
colorimetrie_hex_to_lab()
Convertit une couleur hexadécimale en CIE L*a*b*.
colorimetrie_hex_to_lab(string $hex) : array<string|int, mixed>
C'est la conversion à préférer dès qu'un même jeu de couleurs doit être comparé plusieurs fois : ΔE opère sur
des coordonnées LAB, et colorimetrie_delta_e_2000() refait cette conversion à chaque appel. Comparer n couleurs
deux à deux coûte donc n² conversions si l'on passe par elle, contre n en convertissant d'abord puis en
appelant colorimetrie_lab_delta_e_2000().
Parameters
- $hex : string
-
Couleur hexadécimale
Tags
Return values
array<string|int, mixed> —Coordonnées LAB, index l, a et b
colorimetrie_hex_to_polarlab()
Convertit une couleur hexadécimale en polarLAB.
colorimetrie_hex_to_polarlab(string $hex) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur hexadécimale
Return values
array<string|int, mixed> —Coordonnées polarLAB, index l, c et h
colorimetrie_polarlab_to_hex()
Convertit des coordonnées polarLAB en couleur hexadécimale.
colorimetrie_polarlab_to_hex(float $h, float $c, float $l) : string
Parameters
- $h : float
-
Teinte, 0-360
- $c : float
-
Chroma
- $l : float
-
Clarté, 0-100
Return values
string —Couleur hexadécimale au format #RRGGBB
colorimetrie_hex_to_hcl()
Convertit une couleur hexadécimale en HCL, c'est-à-dire en polarLUV.
colorimetrie_hex_to_hcl(string $hex) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur hexadécimale
Return values
array<string|int, mixed> —Coordonnées HCL, index l, c et h
colorimetrie_hcl_to_hex()
Convertit des coordonnées HCL, c'est-à-dire polarLUV, en couleur hexadécimale.
colorimetrie_hcl_to_hex(float $h, float $c, float $l) : string
Parameters
- $h : float
-
Teinte, 0-360
- $c : float
-
Chroma
- $l : float
-
Clarté, 0-100
Return values
string —Couleur hexadécimale au format #RRGGBB
colorimetrie_hex_to_oklab()
Convertit une couleur hexadécimale en Oklab.
colorimetrie_hex_to_oklab(string $hex) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur hexadécimale
Return values
array<string|int, mixed> —Coordonnées Oklab, index l (0-1), a et b
colorimetrie_oklab_to_hex()
Convertit des coordonnées Oklab en couleur hexadécimale.
colorimetrie_oklab_to_hex(float $l, float $a, float $b) : string
Parameters
- $l : float
-
Clarté, 0-1
- $a : float
-
Coordonnée a
- $b : float
-
Coordonnée b
Return values
string —Couleur hexadécimale au format #RRGGBB
colorimetrie_hex_to_oklch()
Convertit une couleur hexadécimale en Oklch.
colorimetrie_hex_to_oklch(string $hex) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur hexadécimale
Return values
array<string|int, mixed> —Coordonnées Oklch, index l (0-1), c et h
colorimetrie_oklch_to_hex()
Convertit des coordonnées Oklch en couleur hexadécimale.
colorimetrie_oklch_to_hex(float $h, float $c, float $l) : string
Parameters
- $h : float
-
Teinte, 0-360
- $c : float
-
Chroma, 0-0,4 environ
- $l : float
-
Clarté, 0-1
Return values
string —Couleur hexadécimale au format #RRGGBB
colorimetrie_polarlab_est_dans_gamut()
Indique si une couleur exprimée en polarLAB est représentable en sRGB.
colorimetrie_polarlab_est_dans_gamut(float $h, float $c, float $l) : bool
Les espaces perceptuels décrivent bien plus de couleurs qu'un écran n'en sait afficher : un triplet polarLAB
parfaitement valide peut n'avoir aucun équivalent sRGB. Dans ce cas colorimetrie_polarlab_to_hex() rend tout de même
une couleur, écrêtée composante par composante, dont la teinte et le chroma ne sont plus ceux demandés. Cette
fonction permet de le savoir avant de convertir.
Le test porte sur les composantes sRGB non écrêtées, à _EZPALETTE_GAMUT_TOLERANCE près : est tenue pour
représentable une couleur dont l'écrêtage ne changerait pas le rendu sur huit bits.
Parameters
- $h : float
-
Teinte, 0-360
- $c : float
-
Chroma
- $l : float
-
Clarté, 0-100
Tags
Return values
bool —true si la couleur est représentable en sRGB
colorimetrie_polarlab_chroma_maximal()
Calcule le chroma le plus élevé qu'une teinte et une clarté données autorisent en sRGB.
colorimetrie_polarlab_chroma_maximal(float $h, float $l[, float $precision = 0.05 ]) : float
C'est l'outil qui permet de construire une rampe honnête. Laisser l'écrêtage des composantes faire son œuvre déplace la teinte et écrase la clarté ; plafonner le chroma demandé sur ce maximum les préserve toutes deux, la seule concession étant une couleur moins vive là où le gamut ne suit pas. Deux stratégies s'offrent alors :
- plafonner couleur par couleur, chacune sur son propre maximum : la rampe reste aussi vive que possible, mais son chroma varie avec la clarté ;
- plafonner toute la rampe sur le plus petit des maxima : le chroma devient constant, au prix des couleurs les plus vives.
Sur un bleu de teinte 296 étalé de la clarté 20 à 90, le premier réglage ramène la dérive de teinte de 5,5° à moins de 0,25° et rend les clartés demandées à l'unité près.
La valeur rendue est le premier franchissement du bord du gamut en partant de l'axe des gris : tous les chromas qui lui sont inférieurs sont représentables, ce qui est la propriété dont une rampe a besoin.
Parameters
- $h : float
-
Teinte, 0-360
- $l : float
-
Clarté, 0-100
- $precision : float = 0.05
-
Largeur de l'intervalle en deçà de laquelle la dichotomie s'arrête
Tags
Return values
float —Chroma maximal représentable, nul si la clarté elle-même est hors de l'intervalle 0-100
colorimetrie_interpoler()
Interpole entre deux couleurs, dans l'espace demandé.
colorimetrie_interpoler(string $hex1, string $hex2, float $ratio[, string $espace = 'oklab' ]) : string
Le chemin suivi d'une couleur à l'autre dépend entièrement de l'espace : entre le bleu et le jaune, RGB traverse un gris terne, HSL parcourt les verts saturés, les espaces perceptuels tiennent le milieu. C'est pourquoi l'espace est un paramètre et non un détail d'implémentation.
Oklab est retenu par défaut. C'est aujourd'hui le meilleur choix pour un dégradé : il corrige la dérive des bleus vers le violet dont souffre CIE Lab*, précisément sur le trajet qu'empruntent le plus souvent les nuanciers séquentiels et divergents.
Dans les espaces à teinte — HSL, polarLAB, HCL, Oklch — l'interpolation suit le plus court des deux arcs du cercle chromatique. Lorsqu'une des deux couleurs est achromatique, sa teinte, fixée à zéro par convention, est remplacée par celle de l'autre extrémité : sans cette précaution, un dégradé vers le blanc virerait au rouge.
Parameters
- $hex1 : string
-
Couleur de départ, hexadécimale
- $hex2 : string
-
Couleur d'arrivée, hexadécimale
- $ratio : float
-
Position sur le trajet, de 0 pour la couleur de départ à 1 pour celle d'arrivée. Une valeur hors de cet intervalle est ramenée à ses bornes
- $espace : string = 'oklab'
-
Espace d'interpolation :
oklab,oklch,lab,polarlab,hcl,hslourgb. Toute autre valeur revient au défaut,oklab
Return values
string —Couleur hexadécimale au format #RRGGBB
colorimetrie_simuler_deficience()
Simule la perception d'une couleur par une personne dont la vision des couleurs est déficiente.
colorimetrie_simuler_deficience(string $hex[, string $type = 'deuteranopie' ]) : string
Une palette cartographique n'est lisible que si ses couleurs restent distinctes pour tout le monde. Cette fonction rend la couleur telle qu'elle est perçue, ce qui permet de comparer les couleurs simulées entre elles : deux couleurs qui se confondent après simulation se confondront pour le lecteur concerné.
Trois déficiences sont couvertes, toutes trois dans leur forme complète, ou dichromatique :
protanopie: absence des cônes sensibles au rouge ;deuteranopie: absence des cônes sensibles au vert, de loin la plus fréquente ;tritanopie: absence des cônes sensibles au bleu, la plus rare.
La simulation est une transformation linéaire des composantes RGB linéaires : elle modélise une réponse des photorécepteurs, qui dépend de la lumière reçue et non de la valeur encodée. C'est aussi pourquoi le résultat peut sortir du gamut, auquel cas il est écrêté comme partout ailleurs dans ce fichier.
Parameters
- $hex : string
-
Couleur hexadécimale
- $type : string = 'deuteranopie'
-
Déficience simulée :
deuteranopie,protanopieoutritanopie. Tout autre valeur rend la couleur inchangée
Tags
Return values
string —Couleur perçue, hexadécimale au format #RRGGBB
colorimetrie_luminance_relative()
Calcule la luminance relative d'une couleur, telle que définie par les WCAG.
colorimetrie_luminance_relative(int $r, int $g, int $b) : float
Parameters
- $r : int
-
Rouge, 0-255
- $g : int
-
Vert, 0-255
- $b : int
-
Bleu, 0-255
Tags
Return values
float —Luminance relative, 0 pour le noir et 1 pour le blanc
colorimetrie_delta_e_76()
Calcule l'écart perceptuel ΔE*ab entre deux couleurs, selon la formule CIE 1976.
colorimetrie_delta_e_76(string $hex1, string $hex2) : float
L'écart est la distance euclidienne entre les deux couleurs dans l'espace CIE Lab*, dont c'est précisément la raison d'être : y être équidistant approche l'équidistance perceptuelle.
Ordres de grandeur usuels : en deçà de 1 l'écart n'est pas perceptible, autour de 2,3 il correspond au seuil de discrimination, au-delà de 5 les deux couleurs se distinguent au premier coup d'œil.
Parameters
- $hex1 : string
-
Première couleur hexadécimale
- $hex2 : string
-
Seconde couleur hexadécimale
Tags
Return values
float —Écart perceptuel, nul si les deux couleurs sont identiques
colorimetrie_contraste_wcag()
Calcule le rapport de contraste entre deux couleurs, tel que défini par les WCAG.
colorimetrie_contraste_wcag(string $hex1, string $hex2) : float
Le rapport vaut 1 pour deux couleurs de même luminance et 21 entre le noir et le blanc. Les WCAG exigent 4,5 pour le niveau AA sur du texte courant, 7 pour le niveau AAA.
Parameters
- $hex1 : string
-
Première couleur hexadécimale
- $hex2 : string
-
Seconde couleur hexadécimale
Return values
float —Rapport de contraste, compris entre 1 et 21
colorimetrie_lab_delta_e_2000()
Calcule l'écart perceptuel ΔE₀₀ entre deux couleurs exprimées en CIE L*a*b*, selon la formule CIEDE2000.
colorimetrie_lab_delta_e_2000(float $l1, float $a1, float $b1, float $l2, float $a2, float $b2) : float
CIEDE2000 est la formule recommandée par la CIE depuis 2001 et normalisée par l'ISO/CIE 11664-6. Elle corrige les défauts les mieux documentés du ΔE*ab de 1976, qui surestime les écarts dans les bleus saturés et les sous-estime près des neutres — précisément les régions où se situent la plupart des palettes cartographiques.
Elle pondère les trois composantes de l'écart par des facteurs dépendant de la position dans l'espace, et ajoute un terme de rotation qui rend compte de l'inclinaison des ellipses de discrimination dans les bleus.
Parameters
- $l1 : float
-
Clarté de la première couleur
- $a1 : float
-
Coordonnée a* de la première couleur
- $b1 : float
-
Coordonnée b* de la première couleur
- $l2 : float
-
Clarté de la seconde couleur
- $a2 : float
-
Coordonnée a* de la seconde couleur
- $b2 : float
-
Coordonnée b* de la seconde couleur
Tags
Return values
float —Écart perceptuel, nul si les deux couleurs sont identiques
colorimetrie_delta_e_2000()
Calcule l'écart perceptuel ΔE₀₀ entre deux couleurs hexadécimales, selon la formule CIEDE2000.
colorimetrie_delta_e_2000(string $hex1, string $hex2) : float
Ordres de grandeur usuels : en deçà de 1 l'écart n'est pas perceptible, autour de 2,3 il correspond au seuil de discrimination, au-delà de 5 les deux couleurs se distinguent au premier coup d'œil.
Parameters
- $hex1 : string
-
Première couleur hexadécimale
- $hex2 : string
-
Seconde couleur hexadécimale
Return values
float —Écart perceptuel, nul si les deux couleurs sont identiques
nuancier_teinte_unique()
Produit un nuancier de teintes uniques en faisant varier la luminosité et la saturation d'une couleur.
nuancier_teinte_unique(string $hex, int $taille[, null|float $luminosite_min = null ][, null|float $luminosite_max = null ][, null|float $saturation_min = null ][, null|float $saturation_max = null ]) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur de référence, au format hexadécimal
- $taille : int
-
Nombre de couleurs à produire
- $luminosite_min : null|float = null
-
Luminosité de départ, 0-1. Par défaut celle de la couleur de référence
- $luminosite_max : null|float = null
-
Luminosité d'arrivée, 0-1. Par défaut 0,95 si la luminosité de départ est elle-même laissée par défaut, sinon celle de la couleur de référence
- $saturation_min : null|float = null
-
Saturation de départ, 0-1. Par défaut celle de la couleur de référence
- $saturation_max : null|float = null
-
Saturation d'arrivée, 0-1. Par défaut celle de la couleur de référence
Return values
array<string|int, mixed> —Nuancier, ou tableau vide si la taille demandée est nulle ou négative
nuancier_teinte_bipolaire()
Produit un nuancier bipolaire, divergeant depuis une couleur centrale vers deux couleurs extrêmes.
nuancier_teinte_bipolaire(string $hex1, string $hex2, int $taille[, null|string $hex_central = null ]) : array<string|int, mixed>
Parameters
- $hex1 : string
-
Couleur de la première extrémité
- $hex2 : string
-
Couleur de la seconde extrémité
- $taille : int
-
Nombre total de couleurs, un nombre impair étant recommandé pour ménager une couleur centrale
- $hex_central : null|string = null
-
Couleur du point de bascule, blanche par défaut
Return values
array<string|int, mixed> —Nuancier
nuancier_couleur_melangee()
Produit un nuancier par mélange progressif de deux couleurs.
nuancier_couleur_melangee(string $hex1, string $hex2, int $taille[, string $methode = 'rgb' ]) : array<string|int, mixed>
Le trajet d'une couleur à l'autre est délégué à colorimetrie_interpoler(), ce qui ouvre cette production à tous les
espaces qu'elle connaît : rgb rejoint la couleur d'arrivée en ligne droite et traverse souvent un gris terne,
hsl suit le cercle chromatique, oklab donne le dégradé le plus régulier à l'œil.
Parameters
- $hex1 : string
-
Couleur de départ
- $hex2 : string
-
Couleur d'arrivée
- $taille : int
-
Nombre de couleurs à produire
- $methode : string = 'rgb'
-
Espace d'interpolation :
rgbpar défaut, ou l'un de ceux qu'acceptecolorimetrie_interpoler()—oklab,oklch,lab,polarlab,hcl,hsl
Tags
Return values
array<string|int, mixed> —Nuancier
nuancier_analogique()
Produit un nuancier analogique, composé de teintes voisines sur le cercle chromatique.
nuancier_analogique(string $hex, int $taille[, float $ecart_teinte = 30.0 ]) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur de référence
- $taille : int
-
Nombre de couleurs à produire
- $ecart_teinte : float = 30.0
-
Écart de teinte entre deux couleurs consécutives, en degrés. Un écart de 15 à 30° préserve la parenté visuelle des couleurs
Return values
array<string|int, mixed> —Nuancier
nuancier_complementaire()
Produit un nuancier complémentaire, réunissant les variations d'une couleur et celles de son opposée sur le cercle chromatique.
nuancier_complementaire(string $hex[, int $variations = 3 ]) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur de référence
- $variations : int = 3
-
Nombre de variations produites pour chacune des deux teintes
Return values
array<string|int, mixed> —Nuancier de 2 × $variations couleurs
nuancier_triadique()
Produit un nuancier triadique, réunissant les variations de trois teintes espacées de 120° sur le cercle chromatique.
nuancier_triadique(string $hex[, int $variations = 2 ]) : array<string|int, mixed>
Parameters
- $hex : string
-
Couleur de référence
- $variations : int = 2
-
Nombre de variations produites pour chacune des trois teintes
Return values
array<string|int, mixed> —Nuancier de 3 × $variations couleurs
nuancier_sequentiel()
Produit un nuancier séquentiel en interpolant la clarté et le chroma à teinte constante.
nuancier_sequentiel(string $hex_base, int $taille[, null|float $luminosite_min = null ][, null|float $luminosite_max = null ][, null|float $chroma_min = null ][, null|float $chroma_max = null ]) : array<string|int, mixed>
L'interpolation se fait dans un espace perceptuellement régulier, ce qui donne des écarts visuels réguliers entre couleurs consécutives — propriété recherchée pour représenter une variable ordonnée sur une carte.
Le chroma de chaque couleur est plafonné sur ce que le gamut sRGB autorise à sa clarté, faute de quoi la conversion écrêterait les composantes une à une : la rampe y perdrait sa teinte et n'atteindrait pas les clartés demandées. Chaque couleur est plafonnée sur son propre maximum plutôt que la rampe entière sur le plus petit d'entre eux, afin de rester aussi vive que possible ; le chroma varie donc le long de la rampe, ce qui est le comportement des nuanciers séquentiels de référence.
Parameters
- $hex_base : string
-
Couleur de référence, dont la teinte est conservée
- $taille : int
-
Nombre de couleurs à produire
- $luminosite_min : null|float = null
-
Clarté de départ, 0-100. Vaut 20 par défaut
- $luminosite_max : null|float = null
-
Clarté d'arrivée, 0-100. Vaut 90 par défaut
- $chroma_min : null|float = null
-
Chroma de départ. Par défaut celui de la couleur de référence
- $chroma_max : null|float = null
-
Chroma d'arrivée. Par défaut celui de la couleur de référence
Return values
array<string|int, mixed> —Nuancier
nuancier_divergent()
Produit un nuancier divergent, joignant deux teintes extrêmes en passant par un point neutre.
nuancier_divergent(string $hex1, string $hex2, int $taille[, float $luminosite_centrale = 90.0 ][, float $chroma_central = 5.0 ]) : array<string|int, mixed>
Parameters
- $hex1 : string
-
Couleur de la première extrémité
- $hex2 : string
-
Couleur de la seconde extrémité
- $taille : int
-
Nombre total de couleurs, un nombre impair ménageant une couleur centrale
- $luminosite_centrale : float = 90.0
-
Clarté du point neutre, 0-100. Une valeur de 85 à 95 le rend discret
- $chroma_central : float = 5.0
-
Chroma du point neutre. Une valeur de 0 à 10 le rend quasi achromatique
Return values
array<string|int, mixed> —Nuancier
nuancier_qualitatif()
Produit un nuancier qualitatif, composé de teintes réparties régulièrement sur le cercle chromatique à chroma constant.
nuancier_qualitatif(int $taille[, float $luminosite = 65.0 ][, float $chroma = 60.0 ][, float $teinte_debut = 0.0 ][, float $etalement_clarte = 0.0 ]) : array<string|int, mixed>
Les couleurs y sont perceptuellement équivalentes : aucune ne domine visuellement les autres, ce qui convient à la représentation de modalités sans ordre.
À clarté constante, ce nuancier n'est pas lisible par un daltonien. Un protanope ou un deutéranope ne perçoit
plus l'axe rouge-vert : le cercle chromatique s'effondre sur un seul axe, et il ne lui reste, pour distinguer
deux couleurs, que cet axe résiduel et la clarté — précisément ce que la clarté constante lui retire. C'est à
quoi répond $etalement_clarte, qui échelonne les couleurs de part et d'autre de $luminosite.
Parameters
- $taille : int
-
Nombre de couleurs à produire. Au-delà de huit, les teintes deviennent difficiles à distinguer
- $luminosite : float = 65.0
-
Clarté centrale, 0-100
- $chroma : float = 60.0
-
Chroma commun
- $teinte_debut : float = 0.0
-
Teinte de la première couleur, en degrés
- $etalement_clarte : float = 0.0
-
Amplitude de clarté balayée par le nuancier, en points de clarté. Nulle par défaut, les couleurs partageant alors la même clarté. Les clartés obtenues sont ramenées dans l'intervalle 0-100
Tags
Return values
array<string|int, mixed> —Nuancier
nuancier_multi_teintes()
Produit un nuancier multi-teintes, en déclinant chaque teinte fournie sur une plage de clarté.
nuancier_multi_teintes(array<string|int, mixed> $teintes, int $taille[, float $luminosite_min = 30.0 ][, float $luminosite_max = 90.0 ][, float $chroma = 50.0 ]) : array<string|int, mixed>
Parameters
- $teintes : array<string|int, mixed>
-
Liste des teintes, en degrés
- $taille : int
-
Nombre total de couleurs, réparties entre les teintes
- $luminosite_min : float = 30.0
-
Clarté de départ de chaque déclinaison, 0-100
- $luminosite_max : float = 90.0
-
Clarté d'arrivée de chaque déclinaison, 0-100
- $chroma : float = 50.0
-
Chroma commun
Return values
array<string|int, mixed> —Nuancier d'au plus $taille couleurs
nuancier_inverser()
Renverse l'ordre des couleurs d'un nuancier.
nuancier_inverser(array<string|int, mixed> $nuancier) : array<string|int, mixed>
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à renverser
Return values
array<string|int, mixed> —Nuancier renversé
nuancier_extraire()
Extrait d'un nuancier un sous-ensemble de couleurs réparties régulièrement, extrémités comprises.
nuancier_extraire(array<string|int, mixed> $nuancier, int $nombre) : array<string|int, mixed>
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier de départ
- $nombre : int
-
Nombre de couleurs à extraire
Return values
array<string|int, mixed> —Nuancier extrait, ou le nuancier de départ si celui-ci ne compte pas assez de couleurs, ou un tableau vide si le nombre demandé est nul ou négatif
nuancier_uniformite()
Mesure l'uniformité perceptuelle d'un nuancier, c'est-à-dire la régularité des écarts entre ses couleurs consécutives.
nuancier_uniformite(array<string|int, mixed> $nuancier) : null|array<string|int, mixed>
Un nuancier uniforme fait progresser la perception au même rythme que la donnée représentée : c'est la propriété qui distingue les palettes conçues pour la cartographie thématique des simples dégradés. Plus le coefficient de variation est faible, plus les écarts sont réguliers.
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à mesurer
Tags
Return values
null|array<string|int, mixed> —Mesures du nuancier :
- index
delta_e_moyen: écart perceptuel ΔE₀₀ moyen entre couleurs consécutives - index
ecart_type: dispersion de ces écarts - index
coefficient_variation: dispersion rapportée à la moyenne, en pourcentage Renvoienullsi le nuancier compte moins de deux couleurs, ou si toutes ses couleurs sont identiques : la régularité des écarts n'a alors pas de sens.
nuancier_contraste_minimal()
Détermine le rapport de contraste le plus faible entre les couleurs consécutives d'un nuancier.
nuancier_contraste_minimal(array<string|int, mixed> $nuancier) : null|float
C'est le maillon faible du nuancier : deux plages voisines d'une carte présentant ce rapport seront les plus difficiles à distinguer.
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à mesurer
Return values
null|float —Rapport de contraste minimal, ou null si le nuancier compte moins de deux couleurs
nuancier_progression_clarte()
Décrit la progression de clarté d'un nuancier.
nuancier_progression_clarte(array<string|int, mixed> $nuancier[, float $tolerance = 0.5 ]) : null|array<string|int, mixed>
C'est la mesure qui distingue un nuancier séquentiel de tous les autres. Un séquentiel représente une variable ordonnée, et ce qui porte cet ordre n'est pas la teinte mais la clarté : c'est elle qui survit au daltonisme, au tirage en noir et blanc et à la photocopie. Un nuancier séquentiel dont la clarté n'est pas monotone est défectueux, même si ses écarts perceptuels sont parfaitement réguliers.
nuancier_uniformite() ne sait pas faire cette différence : un divergent bien construit affiche un aussi bon
coefficient de variation qu'un séquentiel, ses couleurs étant régulièrement espacées de part et d'autre de son
point neutre. Les deux mesures sont complémentaires — la régularité des écarts d'un côté, le sens de la
progression de l'autre.
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à mesurer
- $tolerance : float = 0.5
-
Écart de clarté en deçà duquel deux couleurs consécutives sont tenues pour de même clarté. La valeur par défaut absorbe le bruit de la quantification sur huit bits, très inférieur au seuil de perception
Tags
Return values
null|array<string|int, mixed> —Mesures de la progression :
- index
clarte_minetclarte_max: clartés extrêmes rencontrées, 0-100 - index
etendue: amplitude balayée, en points de clarté - index
monotone:truesi la clarté progresse toujours dans le même sens,falsesi elle change de sens ou reste plate - index
sens:croissante,decroissante, ou chaîne vide si la progression n'est pas monotone - index
pas_minimal: plus petit écart de clarté entre deux couleurs consécutives, soit le maillon faible en noir et blanc Renvoienullsi le nuancier compte moins de deux couleurs.
nuancier_verifier_daltonisme()
Vérifie qu'un nuancier reste lisible pour les principales déficiences de la vision des couleurs.
nuancier_verifier_daltonisme(array<string|int, mixed> $nuancier[, string $type = '' ][, float $seuil = 10.0 ][, int $classes = 12 ]) : null|array<string|int, mixed>
Un nuancier cartographique ne remplit son office que si ses couleurs restent distinctes pour tout le monde. La fonction simule la perception de chaque couleur, puis mesure l'écart perceptuel le plus faible entre deux d'entre elles : c'est le couple qui se confondra en premier.
Le critère dépend du type du nuancier, parce que « rester lisible » n'y veut pas dire la même chose. Sur une carte, un nuancier qualitatif se lit en comparant deux plages quelconques à la légende, tandis qu'un séquentiel se lit comme un gradient : ce qu'il faut y préserver n'est pas la distinction de chaque couple mais l'ordre.
qualitative, et tout type non reconnu : tous les couples doivent rester distinguables. C'est le critère le plus exigeant, retenu par prudence pour les types dont on ne sait rien.sequentialetperceptual_sequential: la progression de clarté doit survivre, c'est-à-dire rester monotone et conserver la moitié au moins de son amplitude. C'est ce qui rend sûrs les séquentiels monochromes, dont les couleurs sont pourtant voisines deux à deux.diverging: les deux arcs doivent rester discernables l'un de l'autre. L'échec caractéristique d'un divergent n'est pas la confusion de deux voisines mais celle de ses deux versants, qui fait perdre le sens de l'écart au point neutre.
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à contrôler
- $type : string = ''
-
Type du nuancier, qui détermine le critère appliqué
- $seuil : float = 10.0
-
Écart perceptuel ΔE₀₀ en deçà duquel deux couleurs sont tenues pour confondues. Sans effet sur le critère de progression, dont le seuil se déduit du nuancier lui-même
- $classes : int = 12
-
Nombre maximal de classes sur lesquelles porte la comparaison des couples. La valeur par défaut est le plus grand nombre de couleurs que publient les collections de référence, et au-delà duquel une carte choroplèthe cesse d'être lisible
Tags
Return values
null|array<string|int, mixed> —Mesures du contrôle :
- index
critere:couples,arcsouprogression - index
seuil: seuil effectivement appliqué, dans l'unité du critère — un écart ΔE₀₀ pourcouplesetarcs, une amplitude de clarté pourprogression - index
lisible:truesi les trois déficiences sont lisibles - un index par déficience —
protanopie,deuteranopieettritanopie— portant :- index
mesure: grandeur mesurée, dans l'unité du critère. Nulle si la progression est rompue, ce qui la place sous n'importe quel seuil - index
couple: les deux couleurs d'origine à l'origine de la mesure, vide pour le critère de progression - index
lisible:truesi la mesure atteint le seuil Renvoienullsi le nuancier compte moins de deux couleurs.
- index
nuancier_couleur_a_pourcentage()
Renvoie la couleur d'un nuancier correspondant à une position exprimée en pourcentage.
nuancier_couleur_a_pourcentage(array<string|int, mixed> $nuancier, float $pourcentage) : null|string
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à interroger
- $pourcentage : float
-
Position dans le nuancier, 0-100. Les valeurs hors bornes sont ramenées aux extrémités
Return values
null|string —Couleur hexadécimale, ou null si le nuancier est vide
nuancier_couleur_pour_valeur()
Renvoie la couleur d'un nuancier représentant une valeur située dans un intervalle donné.
nuancier_couleur_pour_valeur(array<string|int, mixed> $nuancier, float $valeur, float $min, float $max) : null|string
C'est la jonction entre une série de données et un nuancier : à chaque valeur correspond une couleur, ce qui constitue le principe même de la carte choroplèthe.
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à interroger
- $valeur : float
-
Valeur à représenter. Les valeurs hors bornes sont ramenées aux extrémités
- $min : float
-
Borne inférieure de l'intervalle
- $max : float
-
Borne supérieure de l'intervalle
Tags
Return values
null|string —Couleur hexadécimale, ou null si le nuancier est vide
palette_identifier()
Traduit la désignation d'une palette en critères SQL.
palette_identifier(mixed $palette) : array<string|int, mixed>
Une palette a deux identités : id_palette, la clé technique attribuée à l'enregistrement, et le triplet
collection + scheme + taille, qui est la façon dont on la nomme en cartographie — le Blues de ColorBrewer,
en cinq classes. Aucune des deux ne prime : l'une vient de la base, l'autre du domaine. Toutes les fonctions
qui opèrent sur une palette existante acceptent donc indifféremment l'une ou l'autre, sous un unique argument
$palette.
Trois formes sont reconnues :
- un entier, ou la chaîne de chiffres qui en vient d'un formulaire : la clé technique ;
- un tableau portant les index
collection,schemeettaille: le triplet ; - une palette chargée, telle que la rend
palette_lire(): elle porte les deux, et sa clé technique est retenue puisque c'est la clé primaire.
Parameters
- $palette : mixed
-
Désignation de la palette, sous l'une des trois formes reconnues
Tags
Return values
array<string|int, mixed> —Critères SQL désignant la palette, ou tableau vide si la désignation est incomplète ou invalide
palette_lire()
Retourne, pour une palette donnée, la description complète ou seulement un champ précis.
palette_lire(mixed $palette[, null|string $information = '' ][, null|bool $traiter_typo = false ]) : mixed
Les champs sérialisés — le nuancier et les mesures de qualification — sont toujours désérialisés : leur forme
en base est un détail de stockage dont l'appelant n'a pas à connaître. Les champs textuels rédigés en SPIP, soit
la seule description, sont rendus bruts par défaut et ne subissent le traitement typographique que sur demande,
car celui-ci produit du HTML qui n'a de sens qu'à l'affichage.
Parameters
- $palette : mixed
-
Désignation de la palette, voir
palette_identifier() - $information : null|string = ''
-
Champ précis à retourner, ou vide pour retourner toute la description
- $traiter_typo : null|bool = false
-
Indique si les champs textuels doivent être traités par
typo()plutôt que rendus bruts. Vautfalsepar défaut. Les champs sérialisés sont eux toujours désérialisés
Tags
Return values
mixed —Description complète de la palette, ou le seul champ demandé, ou null si la palette n'existe
pas ou si le champ demandé lui est étranger
palette_repertorier()
Répertorie les palettes répondant à des critères donnés.
palette_repertorier([array<string|int, mixed> $filtres = [] ]) : array<string|int, mixed>
Parameters
- $filtres : array<string|int, mixed> = []
-
Critères de sélection, tous facultatifs :
- string
collection: collection d'origine - string
scheme: identifiant du schéma - string
type: type de palette, parmi les constantes_EZPALETTE_TYPE_* - int
taille: nombre de couleurs - bool
editable: palettes personnelles si vrai, standard si faux - bool
daltonisme: palettes adaptées au daltonisme si vrai - bool
clarte_monotone: palettes dont la clarté progresse dans un seul sens si vrai, ce qui est la marque d'un nuancier qui encode un ordre et résiste au tirage en noir et blanc - float
contraste_min: rapport de contraste WCAG minimal exigé entre deux couleurs consécutives, 4,5 correspondant au niveau AA - float
clarte_etendue: amplitude de clarté minimale exigée, en points. En deçà de 40, une rampe ne se lit plus en noir et blanc
- string
Tags
Return values
array<string|int, mixed> —Liste des palettes, ordonnée par collection, schéma puis taille
palette_criteres()
Traduit un jeu de filtres en critères SQL.
palette_criteres([array<string|int, mixed> $filtres = [] ]) : array<string|int, mixed>
Partagé par palette_repertorier() et palette_repertorier_schemas(), qui sélectionnent le même ensemble de
palettes et n'en diffèrent que par le regroupement.
Parameters
- $filtres : array<string|int, mixed> = []
-
Critères de sélection, voir
palette_repertorier()
Tags
Return values
array<string|int, mixed> —Critères SQL, tableau vide si aucun filtre n'est fourni
palette_repertorier_schemas()
Répertorie les schémas, c'est-à-dire les palettes regroupées par parti pris chromatique.
palette_repertorier_schemas([array<string|int, mixed> $filtres = [] ][, int $taille_apercu = 7 ]) : array<string|int, mixed>
Un schéma — Blues, RdBu — n'est pas une table : c'est le regroupement des palettes d'une même collection
qui ne diffèrent que par leur nombre de couleurs. Il porte ce qui ne dépend pas de la taille : le type, la
description, l'aptitude déclarée au daltonisme.
C'est l'unité de navigation naturelle. Les collections embarquées comptent 83 schémas pour 858 palettes, soit dix déclinaisons par schéma et jamais moins de six : une liste de palettes est dix fois plus longue qu'une liste de schémas pour la même information chromatique.
Parameters
- $filtres : array<string|int, mixed> = []
-
Critères de sélection, voir
palette_repertorier(). Les critères de taille et de qualité s'appliquent aux palettes avant regroupement : un schéma est retenu dès qu'une seule de ses palettes les satisfait, et les tailles rendues sont celles qui les satisfont - $taille_apercu : int = 7
-
Taille dont le nuancier illustre le schéma. Les 83 schémas embarqués ont tous une déclinaison de sept couleurs ; à défaut, c'est celle dont la taille en est la plus proche qui sert d'aperçu
Tags
Return values
array<string|int, mixed> —Liste des schémas, ordonnée par collection puis schéma, chacun décrit par :
- index
collection,scheme,type,description,daltonisme,editable - index
tailles: les tailles disponibles, entiers ordonnés - index
nb_tailles: leur nombre - index
taille_minettaille_max: les bornes - index
apercu: le nuancier représentatif, tableau de couleurs hexadécimales
palette_existe()
Indique si une palette existe.
palette_existe(mixed $palette) : bool
Parameters
- $palette : mixed
-
Désignation de la palette, voir
palette_identifier()
Return values
boolpalette_recommander()
Recommande les schémas les mieux adaptés à un usage donné.
palette_recommander(array<string|int, mixed> $filtres) : array<string|int, mixed>
La recommandation s'appuie sur les listes déclarées par chaque collection dans son fichier JSON, restreintes aux schémas effectivement présents en base pour les critères demandés.
La curation prime sur la mesure. Quand une collection déclare une liste, elle fait foi : c'est un jugement d'expert, souvent éprouvé à la photocopieuse, qu'aucune de nos mesures ne reproduit. Les mesures prennent le relais là où il n'y a rien à respecter, c'est-à-dire pour les collections personnelles, qui ne déclarent jamais de recommandations — sans quoi elles ne seraient jamais recommandables.
Le contexte fait exception pour le daltonisme : la colonne daltonisme reprend, pour les collections standard,
le drapeau que la collection déclare elle-même. L'appliquer ne contredit donc aucune curation, et le faire en
base plutôt qu'après coup permet de la combiner aux autres critères.
Parameters
- $filtres : array<string|int, mixed>
-
Critères de recommandation :
- string
type: type de palette, parmi les constantes_EZPALETTE_TYPE_*(obligatoire) - int
taille: nombre de couleurs souhaité - string
contexte: usage visé, parmidefaut,daltonismeetimpression_nb - string
collection: restreindre à une collection - bool
daltonisme: ne retenir que les schémas adaptés au daltonisme
- string
Tags
Return values
array<string|int, mixed> —Schémas recommandés, indexés par collection/scheme, chacun décrit par sa collection, son
schéma, son type, son aptitude au daltonisme, les tailles disponibles et sa description
palette_qualifier()
Qualifie un nuancier et rend les valeurs à consigner sur la palette qui le porte.
palette_qualifier(array<string|int, mixed> $nuancier[, string $type = '' ][, null|bool $daltonisme_declare = null ]) : array<string|int, mixed>
C'est le point de calcul unique des mesures stockées : le chargement d'une collection, la création et la modification d'une palette l'appellent tous les trois. Ajouter une mesure ne demande donc de toucher qu'ici, et les trois chemins d'écriture ne peuvent pas diverger.
Les mesures se répartissent en deux natures, et c'est ce qui décide de leur forme de stockage :
- celles qui servent à choisir une palette sont des colonnes, donc filtrables et triables depuis une boucle sans une ligne de PHP : le contraste minimal, l'aptitude au daltonisme, le caractère monotone de la clarté et l'amplitude qu'elle balaie ;
- celles qui servent à décrire une palette déjà retenue tiennent dans un seul tableau
qualification, sérialisé en JSON. Il absorbe une nouvelle mesure sans toucher au schéma.
Parameters
- $nuancier : array<string|int, mixed>
-
Nuancier à qualifier
- $type : string = ''
-
Type de la palette, qui détermine le critère de contrôle du daltonisme
- $daltonisme_declare : null|bool = null
-
Aptitude au daltonisme déclarée par la collection,
nullsi aucune
Tags
Return values
array<string|int, mixed> —Valeurs à consigner :
- index
contraste_min,daltonisme,clarte_monotoneetclarte_etendue: colonnes de la table, les deux booléens sous la formeouiounonemployée par le reste du plugin - index
qualification: tableau des mesures détaillées, à sérialiser avant enregistrement
palette_creer()
Crée une palette personnelle, ou met à jour celle qui occupe déjà le même triplet identifiant.
palette_creer(string $collection_id, string $scheme, int $taille, array<string|int, mixed> $nuancier[, array<string|int, mixed> $options = [] ]) : null|int
Parameters
- $collection_id : string
-
Collection de destination, qui ne peut pas être protégée
- $scheme : string
-
Identifiant du schéma
- $taille : int
-
Nombre de couleurs, qui doit coïncider avec la taille du nuancier
- $nuancier : array<string|int, mixed>
-
Jeu de couleurs hexadécimales
- $options : array<string|int, mixed> = []
-
Attributs facultatifs :
- string
type: type de palette,qualitativepar défaut - string
description: description libre - bool
daltonisme: aptitude au daltonisme
- string
Tags
Return values
null|int —Identifiant de la palette créée ou mise à jour, ou null en cas d'erreur
palette_modifier()
Modifie une palette personnelle.
palette_modifier(mixed $palette, array<string|int, mixed> $modifications) : bool
Parameters
- $palette : mixed
-
Désignation de la palette, voir
palette_identifier() - $modifications : array<string|int, mixed>
-
Champs à modifier, parmi
scheme,type,nuancier,descriptionetdaltonisme. Le nuancier peut être fourni sous forme de tableau
Return values
bool —Vrai si la modification a eu lieu
palette_supprimer()
Supprime une palette personnelle.
palette_supprimer(mixed $palette) : bool
Parameters
- $palette : mixed
-
Désignation de la palette, voir
palette_identifier()
Return values
bool —Vrai si la suppression a eu lieu
palette_dupliquer()
Duplique une palette vers une collection non protégée, ce qui permet de partir d'une palette standard pour en dériver une variante personnelle.
palette_dupliquer(mixed $palette, string $nouveau_scheme[, string $collection_id = 'perso' ]) : null|int
Parameters
- $palette : mixed
-
Désignation de la palette à dupliquer, voir
palette_identifier() - $nouveau_scheme : string
-
Identifiant du schéma de la copie
- $collection_id : string = 'perso'
-
Collection de destination,
persopar défaut
Return values
null|int —Identifiant de la copie, ou null en cas d'erreur
palette_collection_charger()
Charge ou recharge en base de données les collections des palettes de couleurs standard à partir des fichiers JSON correspondants.
palette_collection_charger([null|string $collection_id = null ]) : array<string|int, mixed>
Il est possible de charger une collection donnée ou de charger toutes les collections disponibles.
Parameters
- $collection_id : null|string = null
-
Identifiant de la collection ou null pour charger toutes les collections. L'identifiant de la collection coincide avec le nom du fichier JSON contenant les informations de configuration de la collection.
Tags
Return values
array<string|int, mixed> —Tableau résultat de l'action : soit une erreur, soit une information sur le déroulement correct. Les index sont :
- int level : la gravité telle que définie pour les logs de spip
- string code : le code de l'information ou de l'erreur qui représente aussi l'item de langue
- array parameters : tableau associatif des paramètres de l'erreur à fournir à l'item de langue
palette_collection_decharger()
Vide en base de données les collections des palettes de couleurs standard (non éditables) en préservant les palettes personnelles.
palette_collection_decharger([null|string $collection_id = null ]) : array<string|int, mixed>
Il est possible de vider une collection donnée ou toutes les collections standard enregistrées.
Parameters
- $collection_id : null|string = null
-
Identifiant de la collection ou null pour décharger toutes les collections.
Tags
Return values
array<string|int, mixed> —Tableau résultat de l'action : soit une erreur, soit une information sur le déroulement correct. Les index sont :
- int level : la gravité telle que définie pour les logs de spip
- string code : le code de l'information ou de l'erreur qui représente aussi l'item de langue
- array parameters : tableau associatif des paramètres de l'erreur à fournir à l'item de langue
palette_collection_repertorier()
Liste toutes les descriptions des collections disponibles ou seulement celles filtrées selon un ou plusieurs attributs.
palette_collection_repertorier([null|array<string|int, mixed> $filtres = [] ]) : array<string|int, mixed>
La fonction lit la meta ezpalette_collections.
Parameters
- $filtres : null|array<string|int, mixed> = []
-
Tableau associatif
[champ] = valeurde critères de filtres sur les descriptions de feed. Les opérateurs possibles sont l'égalité et la non égalité qui s'exprime en préfixant la valeur par!.
Return values
array<string|int, mixed> —Renvoie la liste des descriptions des collections enregistrées
palette_collection_est_protegee()
Indique si une collection est protégée, c'est-à-dire si son contenu est administré par le plugin et non par l'utilisateur.
palette_collection_est_protegee(string $collection_id) : bool
Les collections standard sont décrites par un fichier JSON du dossier palettes/ et intégralement rechargées
depuis celui-ci : toute palette personnelle qu'on y déposerait disparaîtrait au premier rechargement. Une
collection inconnue n'est en revanche pas protégée, ce qui permet d'en créer une simplement en employant un nom
nouveau.
Parameters
- $collection_id : string
-
Identifiant de la collection
Return values
bool —Vrai si la collection est administrée par le plugin
palette_collection_normaliser_identifiant()
Vérifie qu'un identifiant de collection est utilisable et le normalise.
palette_collection_normaliser_identifiant(string $collection_id) : string
L'identifiant sert de clé de configuration et de valeur en base : il est réduit aux minuscules, aux chiffres, au tiret et au souligné.
Parameters
- $collection_id : string
-
Identifiant proposé
Return values
string —Identifiant normalisé, ou chaîne vide s'il ne comporte aucun caractère exploitable
palette_collection_recalculer()
Recalcule les agrégats d'une collection à partir des palettes réellement présentes en base.
palette_collection_recalculer(string $collection_id) : array<string|int, mixed>
Types proposés, nombre de schémas et de palettes, tailles disponibles : ces informations décrivent le contenu de la collection et ne sont donc jamais saisies, mais déduites. Les collections standard les obtiennent lors de leur chargement depuis leur fichier JSON ; pour une collection personnelle, il revient à l'appelant de demander ce recalcul après avoir créé, modifié ou supprimé des palettes.
Parameters
- $collection_id : string
-
Identifiant de la collection
Return values
array<string|int, mixed> —Tableau résultat de l'action, aux index level, code et parameters
palette_collection_creer()
Crée une collection personnelle.
palette_collection_creer(string $collection_id[, array<string|int, mixed> $metadonnees = [] ]) : array<string|int, mixed>
Une collection personnelle se distingue d'une collection standard par son drapeau editable : elle n'est pas
adossée à un fichier JSON, n'est donc jamais rechargée, et ses palettes survivent aux rechargements des autres
collections.
Parameters
- $collection_id : string
-
Identifiant souhaité, normalisé automatiquement
- $metadonnees : array<string|int, mixed> = []
-
Métadonnées de la collection, parmi
titre,version,source,licence,descriptionetrecommandations. À défaut de titre, l'identifiant en tient lieu
Return values
array<string|int, mixed> —Tableau résultat de l'action, aux index level, code et parameters. En cas de succès,
l'index parameters porte l'identifiant retenu, qui peut différer de celui demandé
palette_collection_modifier()
Modifie les métadonnées d'une collection personnelle.
palette_collection_modifier(string $collection_id, array<string|int, mixed> $modifications) : array<string|int, mixed>
Les collections standard sont administrées par leur fichier JSON : les modifier en base n'aurait pas de sens, puisque le prochain chargement écraserait la modification.
Parameters
- $collection_id : string
-
Identifiant de la collection
- $modifications : array<string|int, mixed>
-
Métadonnées à modifier, parmi celles déclarées par
_EZPALETTE_COLLECTION_METADONNEES
Return values
array<string|int, mixed> —Tableau résultat de l'action, aux index level, code et parameters
palette_collection_supprimer()
Supprime une collection personnelle.
palette_collection_supprimer(string $collection_id[, bool $avec_palettes = false ]) : array<string|int, mixed>
La suppression est refusée si la collection contient encore des palettes, à moins de le demander explicitement : effacer d'un geste un ensemble de palettes composées à la main mérite une confirmation.
Parameters
- $collection_id : string
-
Identifiant de la collection
- $avec_palettes : bool = false
-
Supprimer aussi les palettes de la collection
Return values
array<string|int, mixed> —Tableau résultat de l'action, aux index level, code et parameters
palette_restituer_nuancier()
Extrait le nuancier d'une palette et vérifie qu'il est exploitable.
palette_restituer_nuancier(array<string|int, mixed> $palette) : array<string|int, mixed>
Parameters
- $palette : array<string|int, mixed>
-
Palette, ou nuancier seul
Return values
array<string|int, mixed> —Nuancier réindexé de zéro, ou tableau vide si la palette n'en contient pas
palette_restituer_identifiant()
Construit l'identifiant lisible d'une palette, utilisable comme préfixe de classe ou de variable CSS.
palette_restituer_identifiant(array<string|int, mixed> $palette[, null|string $defaut = 'palette' ]) : string
Deux palettes affichées sur la même page produiraient des sélecteurs identiques si le préfixe était constant : le dériver du schéma et de la collection les rend distincts.
Parameters
- $palette : array<string|int, mixed>
-
Palette
- $defaut : null|string = 'palette'
-
Préfixe employé si la palette ne porte pas de schéma
Return values
string —Identifiant en minuscules, réduit aux lettres, chiffres et tirets
palette_restituer_export()
Exporte une palette dans un format d'échange.
palette_restituer_export(array<string|int, mixed> $palette[, string $format = 'json' ]) : string
Le format json est le seul à restituer les attributs de la palette et les mentions de sa collection : les
autres formats sont destinés à être intégrés dans du code et ne rendent que les couleurs.
Les formats css et oklch produisent le même bloc de variables CSS et ne diffèrent que par l'écriture des
couleurs : hexadécimale pour le premier, oklch() pour le second. Voir palette_restituer_couleur() sur ce que
cette notation apporte et sur les navigateurs qui l'interprètent.
Parameters
- $palette : array<string|int, mixed>
-
Palette à exporter
- $format : string = 'json'
-
Format visé :
json,csv,scss,css,oklch,jsouphp
Tags
Return values
string —Palette formatée, ou chaîne vide si le nuancier est vide ou le format inconnu
palette_restituer_couleur()
Écrit une couleur dans la notation CSS demandée.
palette_restituer_couleur(string $hex[, string $notation = 'hex' ]) : string
Deux notations sont proposées. hex est celle du nuancier, comprise partout. oklch décrit la même couleur par
sa clarté, son chroma et sa teinte : elle est lisible — on voit du premier coup d'œil qu'une palette progresse en
clarté à teinte constante — et surtout modifiable dans la feuille de style, où oklch(from var(--x) l c h)
permet de dériver une variante sans repasser par PHP.
Parameters
- $hex : string
-
Couleur hexadécimale
- $notation : string = 'hex'
-
Notation visée,
hexouoklch. Toute autre valeur revient àhex
Tags
Return values
string —Couleur écrite dans la notation demandée
palette_restituer_css()
Produit une feuille de style déclarant une classe par couleur de la palette.
palette_restituer_css(array<string|int, mixed> $palette[, array<string|int, mixed> $options = [] ]) : string
Parameters
- $palette : array<string|int, mixed>
-
Palette
- $options : array<string|int, mixed> = []
-
Options de mise en forme :
- string
prefixe: préfixe des classes, dérivé de la palette par défaut - string
propriete: propriété CSS affectée,background-colorpar défaut - string
notation: écriture des couleurs,hexpar défaut ouoklch
- string
Return values
string —Feuille de style, ou chaîne vide si le nuancier est vide
palette_restituer_css_variables()
Produit une feuille de style déclarant une variable CSS par couleur de la palette.
palette_restituer_css_variables(array<string|int, mixed> $palette[, array<string|int, mixed> $options = [] ]) : string
Parameters
- $palette : array<string|int, mixed>
-
Palette
- $options : array<string|int, mixed> = []
-
Options de mise en forme :
- string
prefixe: préfixe des variables, dérivé de la palette par défaut - string
notation: écriture des couleurs,hexpar défaut ouoklch
- string
Return values
string —Feuille de style, ou chaîne vide si le nuancier est vide
palette_restituer_legende()
Produit une légende HTML représentant la palette sous forme de bandeau de couleurs.
palette_restituer_legende(array<string|int, mixed> $palette[, array<string|int, mixed> $options = [] ]) : string
Parameters
- $palette : array<string|int, mixed>
-
Palette
- $options : array<string|int, mixed> = []
-
Options de mise en forme :
- array
intitules: intitulé de chaque couleur, la couleur elle-même par défaut - string
orientation:horizontalpar défaut, ouvertical - string
classe: classe CSS du bandeau - string
titre: titre affiché, la description de la palette par défaut
- array
Tags
Return values
string —Fragment HTML, ou chaîne vide si le nuancier est vide
palette_restituer_svg()
Produit un aperçu SVG de la palette, sous forme de bandes juxtaposées.
palette_restituer_svg(array<string|int, mixed> $palette[, array<string|int, mixed> $options = [] ]) : string
Parameters
- $palette : array<string|int, mixed>
-
Palette
- $options : array<string|int, mixed> = []
-
Options de mise en forme :
- int
largeur: largeur totale en pixels, 300 par défaut - int
hauteur: hauteur totale en pixels, 50 par défaut - bool
etiquettes: inscrire le code de chaque couleur dans sa bande
- int
Tags
Return values
string —Document SVG, ou chaîne vide si le nuancier est vide