Calcolare la correzione EXIF
Ottenga la correzione esatta per qualsiasi valore di orientamento EXIF da 1 a 8: l'orientamento 6 richiede una rotazione di 90 gradi in senso orario e nessun ribaltamento, e i valori speculari ricevono anche il ribaltamento giusto. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Orientamento
- 6
- Rotazione (gradi)
- 90
- Ordine delle operazioni
- flip_then_rotate
Il tag di orientamento EXIF indica al software come trasformare i pixel memorizzati affinché l’immagine appaia diritta. Questa capacità converte ogni valore valido da 1 a 8 in un’istruzione pronta da implementare: rotazione oraria, indicatori di ribaltamento orizzontale o verticale e ordine di applicazione. Gestisce sia le normali rotazioni della fotocamera sia i casi speculari che spesso vengono implementati in modo errato. Lei può utilizzare il risultato in pipeline grafiche, servizi di miniature, validatori di caricamenti o strumenti di analisi dei metadati senza mantenere una tabella di orientamento propria.
Perché una foto diritta può contenere pixel ruotati
Molte fotocamere e molti telefoni evitano di riorganizzare ogni pixel quando il dispositivo viene girato. Memorizzano invece la griglia acquisita nell’orientamento più comodo per il sensore e scrivono un tag EXIF che indica al visualizzatore come presentarla. Il software che rispetta il tag mostra la fotografia diritta; quello che lo ignora può visualizzare lo stesso file di lato, capovolto o speculare.
Il tag prevede otto valori, non soltanto quattro angoli. I valori 1, 3, 6 e 8 descrivono posizione normale, mezzo giro e quarti di giro. I valori 2, 4, 5 e 7 includono una riflessione: interpretare l’orientamento come sola rotazione genera quindi risultati errati con alcuni scanner, fotocamere frontali e file modificati.
Questa capacità riceve il valore numerico già letto dai metadati e restituisce la correzione esatta. Non decodifica né modifica l’immagine; fornisce l’istruzione affidabile che il processore grafico di Lei può applicare.
Come applicare la trasformazione restituita
Inserisca un intero nel campo orientation. L’ordine è importante per gli orientamenti 5 e 7, perché riflessione e rotazione non sono commutative; invertirle può produrre un diverso orientamento speculare. La mappatura canonica rappresenta l’orientamento 4 con un ribaltamento orizzontale seguito da 180 gradi, geometricamente equivalente a uno verticale.
Conservare un solo asse canonico semplifica il codice successivo, mentre l’indicatore verticale esplicito mantiene stabile la risposta. L’orientamento 1 restituisce rotazione zero e nessun ribaltamento. Valori fuori dall’intervallo 1–8, frazioni, stringhe numeriche, campi assenti e altri tipi producono un errore di input non valido senza fare supposizioni.
Dove collocare la conversione nella pipeline
Utilizzi questo calcolo subito dopo che un analizzatore EXIF ha letto il tag Orientation e prima di ridimensionamento, ritaglio, OCR, riconoscimento facciale o generazione delle miniature. Normalizzare all’inizio fa sì che le coordinate successive si riferiscano alla vista diritta, evitando ritagli sul bordo sbagliato o riconoscimento del testo su righe ruotate. Se il decoder applica già automaticamente l’orientamento EXIF, non esegua la trasformazione una seconda volta: disabiliti tale funzione oppure usi la risposta solo per ispezione e pianificazione.
Dopo aver trasformato fisicamente i pixel, in genere conviene scrivere Orientation 1 o rimuovere il vecchio tag, altrimenti un visualizzatore conforme potrebbe ripetere la correzione. La capacità è deterministica e non usa dati dell’immagine, rete o euristiche del dispositivo; lo stesso tag produce sempre la stessa istruzione. È utile anche per verificare librerie con file speculari di prova, raramente presenti tra le fotografie comuni.
Casi d'uso
Normalizzare le fotografie caricate
Converta il tag Orientation di ogni caricamento prima di generare le miniature, così tutti i derivati avranno pixel fisicamente diritti.
Preparare le scansioni per l’OCR
Corregga i pixel ruotati o speculari prima del riconoscimento del testo, dell’analisi del layout e dell’estrazione per coordinate.
Verificare una libreria grafica
Confronti il comportamento per tutti gli otto valori EXIF con una mappatura canonica stabile di rotazione e ribaltamento.
Domande frequenti
Quali valori sono accettati?
Sono accettati solo valori interi di orientamento EXIF da 1 a 8.
Questa capacità ruota direttamente l’immagine?
No. Restituisce la trasformazione necessaria per mostrare diritti i pixel memorizzati; sarà la libreria grafica di Lei ad applicarla.
Perché sono necessari i ribaltamenti?
Quattro orientamenti EXIF comprendono una riflessione. La sola rotazione non rappresenta correttamente gli orientamenti speculari 2, 4, 5 e 7.
Prima si ribalta o prima si ruota?
Prima si ribalta, poi si ruota in senso orario. L'ordine conta per gli orientamenti 5 e 7, perché un riflesso e una rotazione non danno la stessa immagine se vengono scambiati.
E se il mio programma di foto corregge già l'orientamento da solo?
In quel caso non applichi la correzione una seconda volta, altrimenti la foto risulta ruotata due volte. Disattivi la correzione automatica oppure usi il risultato solo per verificare cosa indica il file.
Strumenti correlati
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/exif-orientation-fix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"orientation":6}'const res = await fetch("https://api.kit.forhosting.com/image/exif-orientation-fix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"orientation": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/exif-orientation-fix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"orientation": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/exif-orientation-fix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"orientation":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"orientation":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/exif-orientation-fix", 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
{
"orientation": 6
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exif_orientation_fix",
"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. |
Note tecniche
Come applicare la trasformazione restituita
La risposta ripete il valore e restituisce rotation_degrees come 0, 90, 180 o 270, misurati in senso orario. Sono presenti anche gli indicatori booleani flip_horizontal e flip_vertical. operation_order vale flip_then_rotate: il ribaltamento attivo va applicato alla griglia memorizzata prima della rotazione.
Domande tecniche
In quale ordine vanno applicati ribaltamento e rotazione?
Applichi prima il ribaltamento indicato ai pixel memorizzati, poi la rotazione oraria rotation_degrees, come specificato da operation_order.
Quanto costa tramite API?
Ogni richiesta API costa $0.002. Il calcolo è disponibile anche nell’esecutore gratuito del browser, perché non richiede caricamenti né rete.