Trame demi-teinte en gris avec engraissement du point
Ce calculateur estime l'aspect d'une trame imprimée avec une seule encre lorsque l'engraissement des points augmente la surface couverte par rapport au pourcentage nominal.
Lancer gratuitement
Saisissez la valeur de trame et l'engraissement maximal prévu. Le résultat indique la couverture effective, un gris neutre sur 8 bits, les canaux RGB et un échantillon hexadécimal. Cette approximation déterministe convient aux maquettes, épreuves, spécifications d'impression et contrôles automatisés ; elle ne remplace ni un profil de presse mesuré ni une épreuve contractuelle avec gestion des couleurs.
Saisissez la trame nominale et l'engraissement prévu
Commencez par le pourcentage de trame attribué à l'encre d'impression unique. En prépresse, zéro pour cent correspond au papier vierge et cent pour cent à un aplat. Une trame de cinquante pour cent est donc censée couvrir la moitié de la surface avant de tenir compte du comportement de la presse. Indiquez ensuite l'engraissement prévu, également appelé augmentation de la valeur tonale. Le calculateur interprète cette valeur comme l'augmentation maximale en points de pourcentage, atteinte au ton médian de cinquante pour cent. Ainsi, une trame nominale de cinquante pour cent associée à un engraissement de quinze pour cent donne environ soixante-cinq pour cent de couverture effective. La valeur par défaut sert d'exemple et ne constitue pas une spécification universelle. Lorsque ces informations existent, utilisez la valeur fournie par votre imprimeur ou par la cible de contrôle du procédé correspondant au papier et à la trame retenus. Toutes les entrées doivent être des nombres finis compris dans les plages admises.
Comprenez le modèle d'approximation déterministe
L'engraissement ne s'ajoute pas uniformément à toutes les teintes. Le blanc du papier doit rester blanc et un aplat ne peut pas dépasser cent pour cent. Le calculateur applique donc une courbe sinusoïdale d'augmentation tonale : la correction est nulle aux deux extrémités et atteint le maximum saisi à cinquante pour cent. Il ajoute cette correction à la trame nominale, puis borne la couverture effective à l'intervalle physique. Cette couverture est inversée sur une échelle neutre de 8 bits, où zéro représente le noir et 255 le blanc, avant d'être arrondie à l'entier le plus proche. Ce même entier alimente les trois canaux RGB et l'échantillon hexadécimal, ce qui garantit leur cohérence. Le modèle est volontairement simple, transparent et reproductible dans l'API comme dans le navigateur. Il ne simule ni densité d'encre, ni teinte du support, ni diffusion lumineuse, ni trapping, ni technologie de tramage, ni profil ICC ; ces effets exigent des mesures réelles.
Employez correctement le résultat en production
Considérez le gris obtenu comme une aide à la planification et à la communication. Vous pouvez comparer les paliers d'une gamme avant de commander une épreuve physique, expliquer pourquoi une trame nominale risque de s'imprimer plus sombre ou générer des échantillons cohérents dans un portail de production. La réponse conserve la trame nominale, l'engraissement saisi, l'augmentation tonale calculée et la couverture effective avec le gris final. Ces valeurs intermédiaires rendent l'estimation vérifiable et permettent de distinguer un assombrissement provenant du document d'un effet lié à la presse supposée. Pour valider définitivement la couleur, utilisez une épreuve calibrée et la courbe de reproduction tonale mesurée par l'imprimeur. La couverture d'une seule encre ne détermine pas à elle seule la clarté perçue, car les encres et papiers varient, et un échantillon neutre à l'écran ne reproduit pas leur comportement spectral. Les extrêmes restent stables : zéro donne toujours du blanc et cent du noir. Chaque conversion par API coûte $0.002.
Cas d’usage
Prévisualiser une trame d'encre directe
Créez une approximation neutre à l'écran d'un pourcentage d'encre unique en tenant compte de l'engraissement prévu.
Documenter les hypothèses de production
Consignez la couverture nominale, l'engraissement supposé, la couverture effective et le gris calculé de façon reproductible.
Contrôler une gamme de trames
Convertissez plusieurs valeurs avec le même engraissement afin d'examiner l'assombrissement possible d'une progression tonale.
Questions fréquentes
Quel est le prix d'une conversion ?
Une conversion par API coûte $0.002. Le calcul est déterministe et ne sollicite aucun service externe.
Que signifie ici l'engraissement du point ?
Il s'agit de l'augmentation tonale maximale en points de pourcentage, appliquée à cinquante pour cent puis ramenée à zéro au blanc et à l'aplat.
Pourquoi une trame de 50 % est-elle plus sombre que le gris 128 ?
Un engraissement positif porte la couverture effective au-dessus de cinquante pour cent ; sur l'échelle inversée, le gris diminue et paraît plus sombre.
Ce calcul remplace-t-il un profil ICC ou une épreuve contractuelle ?
Non. Il approxime la couverture et ne modélise pas une encre, un papier, une réponse spectrale ou un étalonnage mesurés.
Que se passe-t-il à 0 % et à 100 % de trame ?
Zéro pour cent produit toujours du blanc et cent pour cent du noir, car la correction sinusoïdale est nulle aux deux extrémité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/halftone-gray \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"tint_percent":50}'const res = await fetch("https://api.kit.forhosting.com/color/halftone-gray", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"tint_percent": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/halftone-gray",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"tint_percent": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/halftone-gray", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"tint_percent":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"tint_percent":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/halftone-gray", 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
{
"tint_percent": 50
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.halftone_gray",
"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. |