Convertisseur RVB vers TSV
Passez une couleur RVB aux chiffres d’une roue chromatique : l’orange 255, 128, 0 a une teinte d’environ 30°, une saturation de 1 et une valeur de 1. Pratique quand un sélecteur doit séparer teinte et luminosité. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Résistance (Ω)
- 255
- G
- 128
- B
- 0
- H
- 30,1176470588
- S
- 1
- Tension (V)
- 1
- H degrés
- 30,1176470588
Ce convertisseur RVB vers TSV prend trois intensités de canal — rouge, vert et bleu — chacune sous forme d'un entier de zéro à deux cent cinquante-cinq, et renvoie la teinte en degrés ainsi que la saturation et la valeur sous forme de fractions unitaires de zéro à un. Les concepteurs, développeurs front-end et étudiants utilisent cette correspondance lorsqu'une palette vit dans des canaux sRGB mais que l'interface a besoin d'une roue de teintes, d'un curseur de saturation, ou d'un contrôle de luminosité que les humains peuvent appréhender. Le moteur est entièrement déterministe : il normalise chaque canal par deux cent cinquante-cinq, trouve le maximum et le minimum, calcule delta, puis applique la formule classique de teinte à six secteurs et les identités standard de saturation et de valeur — sans jamais appeler le réseau, échantillonner de l'aléatoire, ou dépendre de l'horloge.
Ce que signifie la conversion RVB vers TSV et ce que contient la réponse
Dans le modèle sRGB à huit bits utilisé par CSS et la plupart des graphismes web, chacun des canaux rouge, vert et bleu est un entier de zéro à deux cent cinquante-cinq.
Le TSV réorganise cette même couleur en trois axes perceptuels : la teinte est la position sur la roue chromatique en degrés de zéro inclus à trois cent soixante exclu, la saturation est le degré de pureté de la couleur, du gris à zéro à la chroma complète à un, et la valeur est la luminosité globale, du noir à zéro à la forme la plus claire de cette teinte à un.
La conversion met d'abord chaque canal à l'échelle en divisant par deux cent cinquante-cinq, puis fixe Cmax comme le plus grand des trois canaux unitaires, Cmin comme le plus petit, et delta comme leur différence. La teinte est nulle lorsque delta est nul (un axe gris) ; sinon, elle provient du canal qui est Cmax et d'une formule de secteur modulaire qui associe les cas dominés par le rouge, le vert et le bleu à la roue.
La saturation est nulle lorsque Cmax est nul, sinon delta sur Cmax ; la valeur est simplement Cmax. Il n'existe aucune voie acceptant des pourcentages ou des canaux en virgule flottante en entrée, et aucun plafonnement silencieux de deux cent cinquante-six vers deux cent cinquante-cinq.
Où la conversion RVB vers TSV intervient dans le design, les études et les logiciels
Les concepteurs rencontrent cette correspondance lorsqu'un guide de marque liste des échantillons RVB et qu'un sélecteur basé sur la teinte ou un système d'animation a besoin de H, S et V, lorsqu'une pipette de capture d'écran rapporte rouge vert bleu et qu'une palette générative doit faire tourner la teinte tout en conservant la valeur, ou lorsqu'un outil d'accessibilité doit raisonner sur la luminosité séparément de la chroma.
Les étudiants la rencontrent dans les cours d'infographie qui introduisent les modèles de couleur cylindriques, dans les cours d'art numérique qui passent des curseurs de canal aux roues TSV, et dans les échauffements d'entretien qui demandent une conversion mentale d'un court triplet.
Les développeurs front-end appellent le même contrat depuis des scripts pour amorcer des données de référence de tokens de design, pour piloter des interfaces de sélecteur de couleur qui exposent la teinte et la luminosité, ou pour normaliser des données importées de feuilles de calcul qui stockent des colonnes r, g et b séparées avant d'alimenter un shader de canevas.
Les outils produits et pédagogiques utilisent cette conversion lorsqu'un apprenant ajuste trois champs RVB et que l'interface doit afficher en direct la teinte, la saturation et la valeur sans aller-retour vers une lourde bibliothèque graphique. Associez-le aux outils de couleur multi-formats lorsque vous avez besoin de hexadécimal ou de CMJN, et aux autres convertisseurs déterministes gratuits lorsque vous construisez un petit laboratoire pour l'hygiène des systèmes de design.
Cas d’usage
Roues de teinte et outils de palette
Transformez des triplets RVB de marque en teinte, saturation et valeur pour des sélecteurs, des palettes génératives et des images clés d'animation.
Données de référence déterministes pour les tests
Générez des résultats TSV reproductibles pour les tests unitaires, les vérifications de propriétés et les assertions d'intégration continue sur des outils de couleur.
Devoirs et démonstrations pédagogiques
Vérifiez le travail des élèves sur la conversion RVB-vers-TSV et faites des démonstrations en direct de modèles de couleur cylindriques sans applications de calcul opaques.
Questions fréquentes
Combien coûte le convertisseur RVB vers TSV ?
Il est gratuit dans votre navigateur sur cette page.
Quelle plage est autorisée pour r, g et b ?
Chaque canal doit être un entier de 0 à 255 inclus.
Quelles sont les unités de h, s et v ?
La teinte h est en degrés dans [0, 360). La saturation s et la valeur v sont des fractions unitaires dans [0, 1].
Cela reconvertit-il le TSV en RVB ?
Non. Cet outil ne fait que convertir des canaux RVB entiers en TSV. Utilisez un convertisseur de couleur inverse ou multi-format si vous avez besoin de TSV-vers-RVB ou d'autres espaces.
Pourquoi 256 est-il rejeté plutôt que plafonné ?
Le plafonnement silencieux masque les erreurs de données.
Outils associés
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/color/rgb-hsv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":128,"b":0}'const res = await fetch("https://api.kit.forhosting.com/color/rgb-hsv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 128,
"b": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb-hsv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 128,
"b": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb-hsv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":128,"b":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":128,"b":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb-hsv", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"r": 255,
"g": 128,
"b": 0
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_hsv",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
min_channel | 0 |
max_channel | 255 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les canaux en dehors de zéro à deux cent cinquante-cinq sont rejetés avec une erreur claire invalid_input plutôt que silencieusement plafonnés. Utilisez-le gratuitement dans le navigateur pour votre travail de palette, vos images clés d'animation et vos vérifications de devoirs, ou appelez l'API à $0.002 par requête réussie lorsque vous avez besoin de données de référence identiques en intégration continue, dans des systèmes de design, ou des démonstrations pédagogiques.
Ce que signifie la conversion RVB vers TSV et ce que contient la réponse
Ce calculateur renvoie les entiers validés r, g et b, h, s et v arrondis, h_degrees dupliqué pour plus de clarté, s_percent et v_percent mis à l'échelle par cent pour les interfaces à curseurs, une chaîne de fonction rgb, une chaîne résumée hsv, une étiquette de méthode rgb_to_hsv, et un bref rappel de la formule. Le moteur construit soit un triplet TSV exact pour trois canaux légaux, soit rejette la requête avec invalid_input. Les cas rejetés incluent l'absence d'un champ r, g ou b, des chaînes vides après suppression des espaces, des nombres non entiers, du texte non numérique, Infinity ou NaN, et tout canal strictement inférieur à zéro ou supérieur à deux cent cinquante-cinq. Si vous avez besoin de TSV-vers-RVB, d'empaquetage hexadécimal, HSL, LAB, ou CMJN, utilisez un outil inverse ou multi-format dédié ; cette page ne répond qu'à la conversion de canaux RVB entiers vers un triplet TSV stable, adapté aux tokens, aux tests unitaires et aux clients de l'API.
Comment r, g et b sont lus et comment le TSV reste reproductible
Les espaces en début et fin de chaîne sur les canaux de type chaîne sont supprimés ; un signe plus initial optionnel est autorisé uniquement lorsque les caractères restants sont des chiffres décimaux qui s'interprètent comme un entier dans la plage. Un nombre JavaScript brut n'est accepté que lorsqu'il est un entier fini compris entre zéro et deux cent cinquante-cinq ; des valeurs telles que cent vingt-huit virgule cinq échouent à la validation plutôt que d'être arrondies, et les valeurs négatives ou supérieures à deux cent cinquante-cinq échouent avec un message nommant le canal et indiquant qu'il doit rester entre zéro et deux cent cinquante-cinq. Le rouge pur correspond à une teinte de zéro avec saturation et valeur complètes ; le noir pur correspond à une teinte de zéro, une saturation nulle et une valeur nulle ; des canaux mixtes tels que deux cent cinquante-cinq, cent vingt-huit, zéro produisent une teinte chaude proche de trente degrés avec saturation et valeur complètes. Les champs privilégiés sont r pour le rouge, g pour le vert, et b pour le bleu, mais les alias red et R majuscule pour le rouge, green et G majuscule pour le vert, et blue et B majuscule pour le bleu, sont acceptés, afin que les feuilles de calcul, les chaînes de requête et les formulaires typés puissent réutiliser le même contrat sans renommer de colonnes. Après validation, la conversion n'utilise qu'une arithmétique sous forme fermée sur les canaux unitaires, puis arrondit les composantes en virgule flottante à une largeur décimale fixe, afin que les goldens JSON et les assertions d'intégration continue restent stables entre plateformes. Associez l'exécution gratuite dans le navigateur sur cette page à l'API payante lorsque vous avez besoin du même résultat mathématique au sein d'un pipeline automatisé, sans réimplémenter vous-même la normalisation des canaux.
Où la conversion RVB vers TSV intervient dans le design, les études et les logiciels
Sur cette page, le travail s'exécute entièrement dans votre navigateur ; via l'API, chaque recherche réussie coûte $0.002, la validation échouée n'est pas facturée, et rien n'est conservé après le renvoi de la réponse. Cette séparation — exploration interactive gratuite et API payante identique — correspond au reste du catalogue de niveau A de KIT, et vous permet de passer d'une démonstration en classe ou d'une revue de design à un pipeline automatisé sans changer le résultat mathématique.