Crea miniature nitide
Una miniatura è la versione piccola di un'immagine, quella che compare nelle liste, nelle gallerie e nei risultati. Lo strumento genera anteprime alla misura che indichi — quadrate o rettangolari — riducendo il peso ma tenendo il soggetto leggibile, così le pagine si caricano in fretta senza sembrare sgranate.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
Piccola sì, ma nitida
Il problema di tante miniature è che nascono da un semplice rimpicciolimento brutale: bordi frastagliati, testo illeggibile, soggetto perso. Qui la riduzione mantiene la definizione e puoi scegliere se la miniatura deve contenere tutta l'immagine o riempire un riquadro fisso ritagliando il superfluo. Il secondo modo è perfetto per gallerie a griglia, dove tutte le caselle devono avere la stessa forma. Il risultato è leggero da caricare ma ancora riconoscibile a colpo d'occhio, che è tutto quello che serve a un'anteprima.
Quadrata, verticale o su misura
Non c'è una misura giusta in assoluto: dipende da dove va l'anteprima. Un e-commerce di solito vuole miniature quadrate; un blog preferisce copertine orizzontali; una lista di documenti sta bene con formati verticali. Imposti larghezza e altezza — o il rapporto — e ottieni una serie coerente. Puoi anche uscire in WebP per pesare ancora meno, cosa che sui listati con decine di anteprime fa una differenza vera sul tempo di caricamento e sui Core Web Vitals.
Una foto o un catalogo intero
Per la singola immagine lo usi al volo da questa pagina. Quando le anteprime sono tante e devono nascere da sole a ogni caricamento — le foto dei nuovi prodotti, gli articoli pubblicati — colleghi lo strumento via API al tuo flusso. Presto anche da app ed email. Ogni immagine di partenza può arrivare a 15 MB e 12 megapixel.
Casi d'uso
Griglia prodotti dell'e-commerce
La pagina categoria mostra decine di prodotti: generi miniature quadrate uguali per tutti, in WebP, e la griglia si carica velocissima anche da telefono.
Anteprime degli articoli del blog
Ogni post ha una copertina pesante che rallenta la home. Crei una miniatura orizzontale per ciascuno e la lista degli articoli scorre fluida.
Lista di documenti scansionati
Lo studio di Bologna archivia scansioni e vuole riconoscerle a colpo d'occhio. Una miniatura per file rende la cartella navigabile senza aprire ogni PDF.
Domande frequenti
Che differenza c'è tra miniatura e ridimensionamento?
La miniatura è un ridimensionamento pensato per le anteprime: molto piccola e, se vuoi, ritagliata a un riquadro fisso perché tutte abbiano la stessa forma. Il ridimensionamento normale, invece, ti porta a una misura qualsiasi senza per forza la logica “anteprima”.
Le miniature vengono sgranate?
No, se parti da una foto di qualità: la riduzione mantiene la definizione. Il testo molto piccolo può diventare illeggibile, ma è un limite fisico delle anteprime, non dello strumento.
Posso averle tutte quadrate e uguali?
Sì. Imposti un riquadro fisso e ogni miniatura viene ritagliata e centrata su quella forma, ideale per griglie ordinate.
Conviene uscire in WebP?
Per le anteprime sì: a parità di qualità pesano meno, e su una lista con molte miniature il tempo di caricamento migliora in modo evidente.
Quanto costa generare le anteprime?
$0.005 per immagine più $0.002 a richiesta, senza canone. Su un catalogo il costo è il numero di miniature per quel prezzo, niente pacchetti da comprare.
I file caricati vengono tenuti?
No: l'originale serve solo a generare la miniatura e viene cancellato subito dopo. Non lo conserviamo.
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/thumbnail \
-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/image/thumbnail", {
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/image/thumbnail",
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/image/thumbnail", 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/image/thumbnail", 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": "image.thumbnail",
"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. |