Un QR dentro un'immagine?
Leggere un codice QR da un’immagine significa estrarre il contenuto codificato senza doverlo inquadrare dal vivo con la fotocamera. Questo strumento del KIT analizza la foto o lo screenshot che carichi e restituisce subito il link, il testo o i dati Wi-Fi che il codice contiene, direttamente nel browser.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Quando serve, in pratica
Un codice QR arrivato per email come allegato, uno screenshot di una locandina condivisa in una chat, una foto sfocata scattata al volo che il telefono non riesce a inquadrare da vivo: in tutti questi casi non hai un oggetto reale da fotografare, hai già un’immagine. Questo strumento legge il codice direttamente da quel file, senza bisogno della fotocamera né di stampare nulla per riprovare.
Cosa restituisce
Il contenuto grezzo codificato nel quadrato: un link, un testo, un numero di telefono o le credenziali di una rete Wi-Fi, a seconda di cosa contiene il codice originale. Se è un link, puoi copiarlo e aprirlo dal computer senza passare per il telefono, ad esempio per verificarlo prima di condividerlo a tua volta con altri, o per archiviarlo insieme al resto dei dati del documento.
Gratis e senza inviare nulla online
L’analisi avviene interamente nel browser: la foto o lo screenshot che carichi non vengono inviati a nessun server. È gratis, senza limiti e senza registrazione. Per leggere codici QR in massa dentro un flusso automatico, la stessa funzione è disponibile via API, a $0.002 a richiesta più $0.005 a immagine, in dollari USA, prezzo pubblicato senza sorprese e senza contratto da firmare in anticipo.
Casi d'uso
Codice ricevuto per email
Un allegato con il codice QR del biglietto del treno arriva per email: invece di aprirlo sul telefono e reinquadrarlo dallo schermo del computer, lo si carica direttamente qui e si legge in un attimo.
Screenshot condiviso in chat
Alessandro Ferrari riceve su WhatsApp lo screenshot di una locandina con un codice QR verso un modulo di iscrizione: lo carica qui invece di provare a inquadrare lo schermo del telefono con un altro telefono.
Verifica prima della stampa
Rossi & Figli S.r.l. controlla, prima di mandare in stampa mille etichette, che il codice QR generato contenga davvero il link corretto: carica l’immagine e legge il contenuto per confermarlo.
Domande frequenti
L’immagine che carico viene inviata online?
No. L’analisi avviene interamente nel browser: l’immagine non lascia il dispositivo e non viene registrata da nessuna parte.
Funziona anche con foto sfocate o storte?
Entro certi limiti sì, ma un’immagine molto sfocata o con il codice tagliato può non essere leggibile: in quel caso serve una foto più nitida o inquadrata meglio.
Cosa costa leggerne tanti via API?
$0.002 a richiesta più $0.005 a immagine: comodo per leggere codici QR in blocco dentro un processo automatico. Nel browser resta gratis.
Posso leggere più codici QR nella stessa immagine?
Lo strumento è pensato per un codice per immagine; se ne hai diversi, funziona meglio caricarli uno alla volta o ritagliati separatamente.
Che formati di immagine accetta?
I formati più comuni, come JPG, PNG e screenshot diretti dal telefono o dal computer.
Serve creare un account per leggerlo?
No, carichi l’immagine e ottieni subito il contenuto, senza registrazione.
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/dev/qr-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/dev/qr-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/qr-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/qr-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/qr-decode", 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
{
"image": "https://ejemplo.com/imagen.jpg"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.qr_decode",
"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.
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. |