Regola dei terzi: linee e punti in pixel
Il calcolatore della regola dei terzi trasforma larghezza e altezza di un’immagine in coordinate precise per due linee verticali, due orizzontali e i loro quattro punti di intersezione.
Esegui gratis nel browser
Lei può usare il risultato per collocare guide compositive in un editor, un’interfaccia fotografica, uno strumento di ritaglio, un sistema di design o un flusso automatizzato. Se una dimensione non è divisibile per tre, le coordinate frazionarie restano intatte affinché l’ambiente grafico scelga il comportamento di rendering più adatto.
Che cosa rappresentano le coordinate della regola dei terzi
Una sovrapposizione della regola dei terzi divide un’immagine rettangolare in tre colonne e tre righe uguali. Questo calcolatore posiziona le guide verticali a un terzo e due terzi della larghezza fornita, quindi quelle orizzontali a un terzo e due terzi dell’altezza. Gli incroci generano quattro riferimenti spesso usati per collocare un soggetto, un volto, un dettaglio dell’orizzonte o un altro elemento visivo importante. L’origine delle coordinate è nell’angolo superiore sinistro: x aumenta verso destra e y verso il basso. È la convenzione comune dei sistemi raster, dei canvas web, dei browser e degli editor di immagini. La risposta conserva larghezza e altezza originali e separa linee verticali, linee orizzontali e intersezioni per renderne semplice l’utilizzo. Non esamina i pixel, non giudica la composizione, non ritaglia l’immagine e non sposta alcun soggetto. Fornisce una geometria deterministica che un’altra applicazione può disegnare, archiviare, confrontare o adoperare come guida compositiva.
Come vengono gestiti pixel frazionari e validazione
Ogni coordinata viene calcolata direttamente dalla dimensione completa, senza arrotondamenti intermedi. Con una larghezza di 1200 pixel, le guide verticali si trovano esattamente ai valori x 400 e 800. Con 1000 pixel, risultano 333.3333333333333 e 666.6666666666666 nella rappresentazione numerica di JavaScript. Conservare le frazioni è importante perché i sistemi di rendering hanno esigenze diverse: un canvas vettoriale può disegnare in posizioni subpixel, mentre un processo raster può preferire l’arrotondamento per difetto, per eccesso, all’intero più vicino o in base al dispositivo. Imporre una regola arbitraria nel calcolatore eliminerebbe questa scelta e potrebbe rendere una regione esterna più larga dell’altra. Larghezza e altezza devono essere interi positivi e finiti, perché descrivono le dimensioni di un’immagine raster. Il valore zero viene rifiutato espressamente: un’immagine priva di larghezza o altezza non offre un’area geometrica utile. Anche valori negativi, frazioni, campi mancanti, stringhe, infiniti e dati non numerici producono un errore di input non valido.
Come usare il risultato negli editor e nei flussi automatici
Per disegnare la sovrapposizione, tracci ogni guida verticale da y uguale a zero fino all’altezza completa, alla coordinata x restituita. Tracci poi ogni guida orizzontale da x uguale a zero fino alla larghezza completa, alla relativa coordinata y. I quattro punti di intersezione già elencati possono diventare maniglie, bersagli, marcatori o riferimenti di aggancio senza calcolare altre combinazioni. In un’anteprima responsiva, esegua il calcolo sulle dimensioni reali dell’immagine in pixel, non sulla misura CSS visualizzata, quindi applichi alle coordinate lo stesso fattore di scala. In un flusso di ritaglio, calcoli i terzi sul rettangolo finale dopo averne stabilito le dimensioni, poiché le guide appartengono all’inquadratura definitiva. La funzione è pura e non usa rete, casualità, data e ora, decodifica di immagini o stato memorizzato. Input identici producono sempre lo stesso JSON, caratteristica utile per strumenti web, validazioni server, test e procedure riproducibili. Nel browser l’uso è gratuito; una richiesta API costa $0.002.
Casi d'uso
Disegnare guide in un editor di immagini
Trasformi le dimensioni del canvas attivo in coordinate per una sovrapposizione uniforme della regola dei terzi.
Aggiungere bersagli compositivi a una fotocamera
Posizioni quattro marcatori di messa a fuoco o del soggetto dalla risoluzione corrente, senza offset fissi.
Verificare le impostazioni di ritaglio
Calcoli i terzi di un ritaglio proposto per confrontare gli elementi importanti con le guide compositive.
Domande frequenti
Quali coordinate vengono restituite?
Il risultato contiene due posizioni x verticali, due posizioni y orizzontali e i quattro punti in cui le linee si incrociano.
Dove si trova l’origine delle coordinate?
L’origine è nell’angolo superiore sinistro. X aumenta verso destra e y verso il basso.
Le posizioni frazionarie vengono arrotondate?
No. Restano disponibili affinché il renderer destinatario scelga il proprio allineamento intero o subpixel.
Che cosa accade se larghezza o altezza è zero?
La richiesta restituisce un errore di input non valido, perché un’immagine senza dimensione non supporta una griglia utile.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Lo stesso calcolo deterministico può essere eseguito gratuitamente nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"width": 1200,
"height": 800
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.grid_overlay_thirds",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 15 |
max_megapixels | 12 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |