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.
Questa attività non è disponibile al momento, quindi non può essere acquistata. Non viene addebitato nulla.
Vedi l'APIPiccola 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
One authenticated POST creates the task; the result comes back by webhook or a signed link. This capability is currently available through the API, not as an interactive Web tool.
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. |