ForHosting KIT · Images

Quantifier une couleur vers la teinte de palette la plus proche

#42A5F5 comparé à #000, #369, #ffffff et #3fa7f2 est ramené à #3fa7f2, en position 3, avec une distance au carré de 22. Gardez les couleurs choisies dans l'ensemble qu'autorisent votre marque, votre appareil ou votre format. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Couleur
#42A5F5
Palette
#000, #369, #ffffff, #3fa7f2
Vous obtenez
Couleur
#42a5f5
Couleur quantifiée
#3fa7f2
Indice de la palette
3
Distance au carré
22

Quantifiez une couleur selon une palette fixe lorsqu'une image indexée, un thème de terminal, un contrôleur LED, un ensemble de jetons graphiques ou un format d'exportation contraint n'accepte que des teintes autorisées. Indiquez une couleur source hexadécimale et une palette ordonnée. L'outil valide chaque valeur, compare les distances RGB exactes et renvoie la couleur normalisée la plus proche, son indice commençant à zéro et la distance au carré. À égalité, la première entrée est toujours retenue, ce qui garantit un résultat identique à chaque exécution.

Constituez une palette fixe avec méthode

La quantification commence par les couleurs que la destination peut réellement enregistrer ou afficher. Placez-les dans le tableau de palette selon un ordre stable et délibéré, en notation #RGB ou #RRGGBB. Les formes courtes sont développées avant la comparaison et la casse des lettres ne change pas le résultat.

La couleur source respecte la même notation. Une palette peut contenir de une à 256 entrées, ce qui convient aux petits nuanciers de marque, aux couleurs de terminal, aux tables classiques d'images indexées, aux sélections de fils à broder et à de nombreux écrans ou appareils spécialisés. L'ordre n'intervient que lorsque deux entrées se trouvent exactement à la même distance de la source.

La première l'emporte alors. Cette règle rend les égalités prévisibles et vous permet d'exprimer une préférence sans modifier les teintes. Conservez la même palette pour tout un lot si vous avez besoin d'une sortie indexée cohérente.

Si des traitements réordonnent discrètement les entrées, l'indice peut changer alors même que la valeur colorimétrique retenue reste identique. Le validateur refuse les tableaux vides ou trop longs, les préfixes absents, les canaux alpha, les chiffres incorrects et les valeurs non textuelles au lieu de deviner votre intention.

Comprenez le calcul déterministe de la distance

Chaque couleur acceptée est développée sur six chiffres hexadécimaux, puis décomposée en canaux rouge, vert et bleu compris entre 0 et 255. L'algorithme soustrait chaque canal de la palette au canal source correspondant, élève les trois écarts au carré et les additionne. L'entrée dont le total est le plus faible est sélectionnée.

Il s'agit d'une distance euclidienne ordinaire dans l'espace RGB encodé, choisie pour produire une conversion indexée transparente et reproductible, et non pour modéliser la perception visuelle. Une nouvelle candidate ne remplace la précédente que si sa distance est strictement inférieure. Une égalité conserve donc toujours l'entrée la plus ancienne.

Ce détail assure un départage stable, y compris avec des palettes symétriques ou des doublons.

Intégrez le résultat sans risque à un flux indexé

Les indices commencent à zéro, conformément aux conventions des tableaux et du traitement d'image. Zéro indique que la source figurait déjà dans la palette ; une valeur supérieure signale un déplacement plus important des canaux. Votre application peut fixer un plafond adapté au métier et refuser les écarts excessifs.

L'outil, lui, renvoie toujours l'entrée valide mathématiquement la plus proche sans imposer un seuil arbitraire. Pour plusieurs couleurs, appliquez la même opération pure à chaque élément avec la même palette ordonnée.

Produire des données d'image indexée

Associez les pixels échantillonnés aux positions d'une table fixe avant d'écrire une représentation indexée.

Respecter les couleurs de marque

Rattachez une couleur libre à la teinte la plus proche du nuancier approuvé dans votre système graphique.

Cibler du matériel limité

Choisissez la valeur RGB prise en charge la plus proche pour des LED, écrans, terminaux ou appareils aux couleurs restreintes.

Quels formats de couleur sont acceptés ?

La source et toutes les entrées doivent employer la notation hexadécimale #RGB ou #RRGGBB. Les canaux alpha et les valeurs sans préfixe sont refusés.

Comment la couleur la plus proche est-elle choisie ?

L'algorithme minimise la somme des carrés des écarts entre les canaux rouge, vert et bleu dans l'espace RGB encodé.

Que se passe-t-il si deux teintes sont à égalité ?

L'entrée placée en premier dans la palette l'emporte, ce qui rend le résultat déterministe.

L'indice de palette commence-t-il à zéro ?

Oui. La première entrée porte l'indice 0, la deuxième l'indice 1, et ainsi de suite.

S'agit-il d'une correspondance perceptuelle ?

Non. Le calcul utilise directement la distance euclidienne RGB pour une sortie indexée simple, exacte et reproductible, sans modèle perceptuel.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/color/quantize-to-palette

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/color/quantize-to-palette \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"color":"#42a5f5","palette":["#000000","#336699","#ffffff"]}'
{
  "color": "#42a5f5",
  "palette": [
    "#000000",
    "#336699",
    "#ffffff"
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.quantize_to_palette",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_items256
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Comprenez le calcul déterministe de la distance

La valeur distance_squared renvoyée correspond exactement à cet entier ; aucune racine carrée n'est nécessaire, car elle ne pourrait pas modifier l'ordre des distances positives. Le calcul est rapide, indépendant de l'environnement et identique dans le navigateur comme via l'API. Le résultat fournit également la source normalisée et palette_index à partir de zéro, afin que vous puissiez écrire directement l'indice tout en conservant la valeur hexadécimale dans vos journaux, aperçus ou contrôles ultérieurs.

Intégrez le résultat sans risque à un flux indexé

Pour une recherche ponctuelle, utilisez quantized_color partout où la destination attend la valeur hexadécimale choisie. Pour un stockage indexé, utilisez palette_index comme position stable dans la palette exacte transmise avec la requête. Conservez toujours la palette avec les indices enregistrés : un indice n'a plus de sens chromatique autonome dès que la palette est remplacée ou réordonnée. distance_squared facilite les contrôles de qualité. Aucun réseau, hasard, horodatage, état caché ou modèle adaptatif n'intervient : une entrée identique produit le même JSON.

Quel est le prix d'une requête API ?

Chaque requête API coûte $0.002. La version navigateur exécute localement la même logique déterministe.

Consulter la documentation complète du KIT →