Fusion pin light
#C0C0C0 posé sur #808080 donne #818181 : les canaux clairs du calque supérieur ne relèvent la base que légèrement, de 128 à 129. La lumière ponctuelle garde la base sauf si le calque du dessus est nettement plus sombre ou plus clair. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Base
- #808080
- Top
- #C0C0C0
- Hex
- #818181
- Chaîne RGB
- rgb(129, 129, 129)
- Mode R
- lighten
- Mode G
- lighten
Le pin light est un mode de fusion classique en composition qui remplace chaque canal d'une couleur de base par une valeur plus sombre ou plus claire selon la couleur supérieure (de fusion). Lorsqu'un canal supérieur se situe sous le gris moyen, le mode assombrit : le résultat est le minimum entre le canal de base et le double du canal supérieur. Lorsqu'un canal supérieur est au gris moyen ou au-dessus, le mode éclaircit : le résultat est le maximum entre le canal de base et le double du canal supérieur moins deux cent cinquante-cinq. Designers, artistes de textures et ingénieurs de pipelines utilisent le pin light lorsqu'ils ont besoin d'un contraste sélectif net sans éditeur d'image complet : superposer un masque de hautes lumières, resserrer les ombres sous un panneau de ton moyen, ou caler des aperçus pin light Photoshop dans des outils de thème automatisés. Cette capacité accepte deux couleurs hex validées, applique la même règle déterministe par canal sur le rouge, le vert et le bleu, et renvoie l'échantillon fusionné en hex et RGB.
Comment le pin light choisit assombrir ou éclaircir sur chaque canal
Le pin light traite la couleur supérieure comme une surface de décision, et non comme un simple ratio de mélange. Pour chaque canal dans la plage de zéro à deux cent cinquante-cinq, comparez le canal supérieur au gris moyen (cent vingt-huit). Si le canal supérieur est strictement inférieur à cent vingt-huit, la branche d'assombrissement s'exécute : le double du canal supérieur devient une borne supérieure, et le résultat est le plus petit entre cette borne et le canal de base.
Visuellement, cela abaisse les pixels de base lumineux là où le calque supérieur est une ombre profonde. Si le canal supérieur est supérieur ou égal à cent vingt-huit, la branche d'éclaircissement s'exécute : le double du canal supérieur moins deux cent cinquante-cinq devient une borne inférieure, et le résultat est le plus grand entre cette borne et le canal de base. Cela relève les pixels de base sombres là où le calque supérieur est une haute lumière vive.
Les canaux supérieurs en gris moyen se placent à la limite et tendent à laisser les valeurs de base largement intactes car les enveloppes d'assombrissement et d'éclaircissement se rejoignent près de la base. L'ordre compte : échanger base et top est une opération différente, contrairement à un lerp RGB à cinquante pour cent.
Contrat d'entrée, champs de réponse et erreurs de validation
Chaque valeur doit être une couleur hexadécimale à trois ou six chiffres avec préfixe optionnel hash ou zero-x. Les noms CSS et les chaînes rgb entre parenthèses sont hors périmètre : normalisez-les en amont. Les échecs de validation ne sont pas facturés.
Utilisez hex lorsque vous avez besoin d'un jeton unique pour des fichiers de thème ; utilisez rgb lorsque le code canvas ou les outils d'accessibilité attendent des canaux séparés ; utilisez les libellés mode_* pour enseigner ou déboguer quelle branche s'est déclenchée sur une couleur supérieure mêlant gris et teinte.
Cas d’usage
Surimpressions sélectives de hautes lumières et d'ombres
Composez une couleur de panneau de ton moyen sous un hex de masque supérieur pour que les canaux sombres approfondissent les ombres et les canaux clairs renforcent les hautes lumières sans éditeur d'image complet.
Réglage de matériaux de jeu et d'interface
Les auteurs de matériaux fusionnent un jeton d'albédo de base avec une couleur supérieure d'indice d'éclairage pour générer des échantillons d'accent pin light pour peaux de HUD et palettes d'accessoires.
Questions fréquentes
Comment le pin light fusionne-t-il deux couleurs ?
Pour chaque canal RGB, si top est inférieur à 128 le résultat est min(base, 2×top) (darken) ; si top est 128 ou plus, max(base, 2×top−255) (lighten). Envoyez base et top en hex.
Quelle est la différence entre base et top ?
Base est la couleur du calque inférieur. Top est la couleur de fusion qui choisit assombrir ou éclaircir par canal. L'ordre compte ; les échanger donne un autre résultat.
Que se passe-t-il si j'envoie un code hex invalide ?
Les deux couleurs doivent être hexadécimales à 3 ou 6 chiffres (# optionnel). Longueur incorrecte ou chiffres non hex sont rejetés et non facturés.
Est-ce la même chose que color.mix ?
Non. color.mix fait un lerp RGB linéaire par ratio. Le pin light n'utilise jamais de ratio : seul le canal top choisit assombrir ou éclaircir. Algorithme et intention de recherche distincts.
Que donne #C0C0C0 posé sur #808080 ?
Le résultat est #818181. Chaque canal du dessus vaut 192, au-dessus du gris moyen : deux fois cette valeur moins 255 donne 129, à peine plus que les 128 de la base, qui monte donc d'un cran.
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/pin-light \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":"#808080","top":"#C0C0C0"}'const res = await fetch("https://api.kit.forhosting.com/color/pin-light", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": "#808080",
"top": "#C0C0C0"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/pin-light",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": "#808080",
"top": "#C0C0C0"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/pin-light", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":"#808080","top":"#C0C0C0"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":"#808080","top":"#C0C0C0"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/pin-light", 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
{
"base": "#808080",
"top": "#C0C0C0"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.pin_light",
"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.
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 entrées invalides ou manquantes échouent avec invalid_input afin que les scripts n'expédient jamais une mauvaise couleur en silence. Le chemin gratuit du navigateur et l'API prépayée partagent un seul module pur, de sorte que les goldens restent identiques bit à bit à $0.002 par élément réussi.
Comment le pin light choisit assombrir ou éclaircir sur chaque canal
L'algorithme est de l'arithmétique pure, sans réseau, sans graine aléatoire et sans horloge murale, de sorte que des entrées identiques produisent toujours le même JSON.
Contrat d'entrée, champs de réponse et erreurs de validation
Envoyez un corps JSON avec deux champs chaîne obligatoires : base (le calque inférieur) et top (le calque de fusion qui sélectionne assombrir ou éclaircir). Les alias color1, bottom, hex1, from et background se mappent sur base ; color2, blend, hex2, to et foreground se mappent sur top, de sorte que les anciens champs de formulaire et le vocabulaire des outils de design se connectent clairement. En cas de succès, la charge utile renvoie base et top en hex normalisé, les objets de canaux base_rgb et top_rgb, l'hex fusionné, rgb sous forme d'entiers r g b, rgb_string pour coller dans le CSS, mode_r mode_g et mode_b comme les mots darken ou lighten par canal, et method toujours égal à pin_light pour que les clients puissent brancher sans renifler les formes. Base manquante, top manquant, chaînes vides, chiffres non hex et longueurs incorrectes échouent avec invalid_input ; les messages nomment le champ pour que la validation du formulaire surligne le contrôle exact.
Flux de travail, tarification et différences avec d'autres outils de couleur
Appelez la fusion pin light gratuite dans le navigateur pour des contrôles rapides de masque, des expériences de surimpression de logo et des aperçus de texture sans installer une suite de bureau. Le pin light est la bonne intention de recherche lorsque l'utilisateur saisit mode de fusion pin light, pin light deux couleurs ou Photoshop pin light hex — ces requêtes ne sont pas servies par un mélangeur générique. Limitez les requêtes à deux chaînes hex, évitez d'envoyer des couleurs nommées sans conversion, et documentez que base est le calque inférieur pour que l'équipe n'inverse jamais l'ordre par accident. Utilisez l'API prépayée lorsqu'un pipeline de design system, un générateur de matériaux de jeu, un service d'échantillons e-commerce ou un bot d'actifs marketing a besoin d'un contrat stable sous solde KIT à $0.002 par élément réussi. Associez ce point de terminaison à color.mix lorsque vous avez besoin d'un lerp par ratio plutôt qu'un assombrissement ou éclaircissement sélectif, à color.mix_subtractive pour une boue type peinture RYB, et à color.lighten ou color.darken lorsqu'une seule couleur doit se décaler en pourcentage. Les auteurs qui mappent des SDK peuvent afficher hex et les trois libellés de mode à côté des sélecteurs de couleur que les étudiants et les designers de production attendent déjà.
Cas d'intégration
Caler les aperçus pin light Photoshop en CI
Les pipelines de thèmes et de textures appellent l'API pour que les builds automatisés reproduisent le même hex pin light vu par le designer dans Photoshop, identique bit à bit à chaque exécution.
Questions techniques
La fusion pin light est-elle gratuite ?
L'outil navigateur s'exécute gratuitement sur votre appareil. Les appels API utilisent le solde KIT prépayé à $0.002 par élément réussi ; les échecs de validation ne sont pas facturés.