Come mettere il logo dentro un codice QR
Un codice QR con logo integra il marchio dell’azienda al centro del disegno, mantenendo il codice leggibile grazie alla correzione d’errore integrata nello standard. Questo strumento del KIT compone logo e codice nel browser, in PNG o SVG, senza editor grafici esterni.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Perché il logo non rompe la lettura
Il formato QR include ridondanza: anche coprendo fino a un buon 30% dell’area con il livello di correzione più alto, il decoder ricostruisce comunque il contenuto. Il logo occupa una porzione piccola al centro, la zona meno critica per la lettura: per questo un codice ben fatto resta scansionabile, mentre uno improvvisato con un logo troppo grande smette di funzionare del tutto.
Cosa serve regolare
Tre cose contano davvero: la dimensione del logo, che deve restare piccola rispetto al totale; il livello di correzione d’errore, da alzare quando aggiungi un’immagine sopra; e il contrasto tra i colori, perché un logo troppo chiaro su sfondo chiaro riduce la leggibilità più del logo stesso. Lo strumento applica questi accorgimenti in automatico mentre componi, senza che tu debba calcolare nulla a mano.
Prima di stampare, verifica sempre
Un codice QR che funziona sullo schermo può comportarsi diversamente su carta stampata più piccola o con un telefono meno recente. Prima di mandare in stampa mille etichette, scansiona una prova con due o tre telefoni diversi: è la verifica più affidabile, più di qualunque regola teorica sulla percentuale di area coperta dal logo, ed evita brutte sorprese dopo la stampa.
Gratis nel browser, a pagamento via API
La composizione avviene nel browser, gratis e senza limiti, esattamente come il codice QR senza logo. Per generarne in serie con il logo aziendale già inserito — uno per ogni punto vendita, uno per ogni prodotto — la stessa funzione è disponibile via API, a $0.002 a richiesta più $0.005 a immagine, poco più del codice semplice senza marchio integrato al centro del disegno.
Casi d'uso
Etichette prodotto con il marchio
Rossi & Figli S.r.l. stampa su ogni confezione un codice QR con il proprio logo al centro, che rimanda alla scheda del prodotto: il cliente riconosce subito il marchio prima ancora di scansionare.
Biglietti da visita con logo
Un fotografo di Firenze mette sul biglietto da visita un codice QR con il logo dello studio, che apre direttamente il portfolio online.
Locandine di un evento aziendale
Tecnoedil Verona S.n.c. usa un codice QR con logo sulla locandina della giornata porte aperte del cantiere, verso il modulo di iscrizione.
Domande frequenti
Il logo può rendere il codice illeggibile?
Se troppo grande o con poco contrasto, sì. Lo strumento limita la dimensione e alza automaticamente il livello di correzione d’errore per evitarlo, ma vale sempre la pena fare una prova di scansione prima di stampare in tanti esemplari.
Che formato di logo posso usare?
PNG o SVG con sfondo trasparente danno il risultato più pulito; un logo con sfondo bianco funziona comunque, ma occupa visivamente più spazio.
Posso ottenere il codice con logo anche in SVG?
Sì, sia il PNG sia l’SVG sono disponibili con il logo integrato; l’SVG conviene per manifesti grandi o insegne, dove serve nitidezza a qualunque dimensione.
Il prezzo cambia rispetto al QR senza logo?
Nel browser resta gratis in entrambi i casi; via API il logo porta il prezzo a $0.002 a richiesta più $0.005 a immagine, poco più dei $0.004 del codice semplice.
Devo caricare il logo ogni volta?
Nel browser sì, a ogni generazione; via API puoi passarlo direttamente nella chiamata insieme al resto dei parametri.
Il mio logo resta privato?
Nel browser sì: il logo e il contenuto codificato non lasciano il dispositivo durante la composizione.
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-logo \
-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-logo", {
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-logo",
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-logo", 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-logo", 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_logo",
"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. |