Règle des tiers : lignes et points en pixels
Le calculateur de règle des tiers transforme la largeur et la hauteur d’une image en coordonnées précises pour deux lignes verticales, deux lignes horizontales et leurs quatre intersections.
Lancer gratuitement
Vous pouvez exploiter ce résultat dans un éditeur, une interface d’appareil photo, un outil de recadrage, un système de design ou un traitement automatisé. Lorsqu’une dimension n’est pas divisible par trois, les positions fractionnaires sont conservées afin que l’environnement graphique choisisse le rendu le mieux adapté.
Ce que représentent les coordonnées de la règle des tiers
Une grille de règle des tiers partage une image rectangulaire en trois colonnes et trois rangées égales. Ce calculateur place les guides verticaux au premier et au deuxième tiers de la largeur fournie, puis les guides horizontaux au premier et au deuxième tiers de la hauteur. Leurs croisements produisent quatre repères souvent employés pour positionner un sujet, un visage, un détail de l’horizon ou un autre point d’intérêt visuel. L’origine se situe dans l’angle supérieur gauche : x augmente vers la droite et y vers le bas. Cette convention correspond aux systèmes courants de graphisme matriciel, de canvas web, de navigateur et de retouche d’image. La réponse rappelle les dimensions initiales et sépare les lignes verticales, les lignes horizontales et les intersections pour simplifier leur traitement. Elle n’analyse pas les pixels, ne juge pas la composition, ne recadre rien et ne déplace aucun sujet. Elle fournit une géométrie déterministe qu’une autre application peut afficher, mémoriser, comparer ou employer comme aide à la composition.
Gestion des pixels fractionnaires et validation
Chaque coordonnée est calculée directement à partir de la dimension complète, sans arrondi intermédiaire. Pour une largeur de 1200 pixels, les guides verticaux se trouvent exactement aux valeurs x 400 et 800. Avec 1000 pixels, ils se trouvent à 333.3333333333333 et 666.6666666666666 selon la représentation numérique de JavaScript. La conservation des fractions est importante, car les moteurs de rendu ont des besoins différents : un canvas vectoriel accepte des positions sous-pixel, tandis qu’un traitement matriciel peut préférer l’entier inférieur, l’entier supérieur, l’entier le plus proche ou un alignement propre à l’appareil. Un arrondi arbitraire dans le calculateur supprimerait ce choix et pourrait rendre une zone extérieure plus large que l’autre. La largeur et la hauteur doivent être des entiers positifs et finis puisqu’elles décrivent une image matricielle. La valeur zéro est expressément refusée : une image sans largeur ou sans hauteur ne possède aucune surface géométrique exploitable. Les valeurs négatives, fractions, champs absents, chaînes, infinis et données non numériques déclenchent également une erreur d’entrée invalide.
Exploiter le résultat dans un éditeur ou un traitement automatisé
Pour dessiner la grille, tracez chaque guide vertical depuis y égal à zéro jusqu’à la hauteur complète, à la coordonnée x renvoyée. Tracez chaque guide horizontal depuis x égal à zéro jusqu’à la largeur complète, à sa coordonnée y. Les quatre intersections peuvent servir de poignées, de cibles, de marqueurs ou de points d’accrochage sans reconstruire leurs combinaisons. Dans un aperçu adaptatif, effectuez le calcul avec les véritables dimensions de l’image en pixels plutôt qu’avec sa taille CSS, puis appliquez aux coordonnées le même facteur d’échelle qu’à l’image. Pour un recadrage, calculez la grille sur le rectangle final après avoir déterminé ses dimensions, puisque les tiers se rapportent au cadrage définitif. La fonction est pure et n’utilise ni réseau, ni hasard, ni horodatage, ni décodage d’image, ni état enregistré. Une entrée identique produit donc toujours le même JSON, ce qui convient aux outils web, validations serveur, tests et chaînes reproductibles. L’usage dans le navigateur est gratuit ; une requête API coûte $0.002.
Cas d’usage
Afficher des guides dans un éditeur d’images
Convertissez les dimensions du canvas actif en coordonnées pour superposer une règle des tiers régulière.
Ajouter des cibles de composition à un viseur
Placez quatre repères de mise au point ou de sujet selon la résolution courante, sans décalages codés en dur.
Valider une disposition de recadrage
Calculez les tiers d’un recadrage prévu pour comparer les éléments importants aux guides de composition.
Questions fréquentes
Quelles coordonnées sont renvoyées ?
Le résultat contient deux positions x verticales, deux positions y horizontales et les quatre points où ces lignes se croisent.
Où se trouve l’origine des coordonnées ?
L’origine se trouve dans l’angle supérieur gauche. X augmente vers la droite et y vers le bas.
Les positions fractionnaires sont-elles arrondies ?
Non. Elles sont conservées afin que le moteur destinataire choisisse son propre alignement entier ou sous-pixel.
Que se passe-t-il si la largeur ou la hauteur vaut zéro ?
La requête échoue avec une erreur d’entrée invalide, car une image sans dimension ne peut porter de grille utile.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. Le même calcul déterministe peut aussi être exécuté gratuitement dans le navigateur.
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/image/grid-overlay-thirds \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1200,"height":800}'const res = await fetch("https://api.kit.forhosting.com/image/grid-overlay-thirds", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1200,
"height": 800
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/grid-overlay-thirds",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1200,
"height": 800
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/grid-overlay-thirds", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1200,"height":800}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1200,"height":800}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/grid-overlay-thirds", 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
{
"width": 1200,
"height": 800
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.grid_overlay_thirds",
"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
max_mb | 15 |
max_megapixels | 12 |
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. |