Generatore di sprite sheet CSS
Generatore di sprite CSS gratuito. Unisci fino a 500 immagini in un unico PNG con classi CSS background-position o un texture atlas JSON, senza upload.
Immagini
- Dimensioni del foglio
- Spazio occupato
Come creare uno sprite sheet
- Trascina le immagini nell’area di caricamento, oppure cliccaci sopra per sceglierle. Sono accettati PNG, SVG, WebP, JPG e gli altri formati che il tuo browser sa leggere, fino a 500 immagini. Ogni file compare nell’elenco Immagini con le sue dimensioni; il pulsante × rimuove un’immagine e Rimuovi tutte le immagini svuota l’elenco.
- Scegli una Disposizione: Griglia, Compatta (foglio più piccolo), Striscia orizzontale o Striscia verticale. Con Griglia, Colonne (0 = automatico) imposta il numero di colonne.
- Imposta la Spaziatura (px) tra gli sprite (2 per impostazione predefinita) e spunta Dimensione potenza di due (256, 512, 1024…) se il tuo motore o la tua GPU lo richiede.
- Scegli il File di dati: CSS (classi background-position), JSON (mappa dei frame) oppure CSS e JSON. Modifica il Nome del file e il Prefisso delle classi CSS (entrambi «sprite» per impostazione predefinita).
- Controlla l’anteprima, le Dimensioni del foglio e lo Spazio occupato, poi clicca su Scarica ZIP (PNG + dati) o Scarica solo il PNG. Il Codice generato si può anche copiare direttamente.
Le immagini vengono decodificate nel browser e nulla viene caricato. Un SVG senza larghezza e altezza proprie viene rasterizzato con il lato più lungo a 256 px.
Scegliere una disposizione
- Griglia assegna a ogni immagine una cella grande quanto l’immagine più grande. Con le colonne automatiche la griglia è più o meno quadrata. È semplice e prevedibile, ideale quando tutti gli sprite hanno la stessa dimensione, come in un tileset.
- Compatta (foglio più piccolo) usa l’impacchettamento a ripiani: le immagini vengono ordinate dalla più alta alla più bassa e disposte da sinistra a destra su più file. Lo strumento prova molte larghezze di foglio e tiene quella con l’area più piccola, tenendo conto dell’arrotondamento a potenze di due quando l’opzione è attiva. Ideale per icone di dimensioni diverse.
- Striscia orizzontale e Striscia verticale mettono le immagini in una sola riga o colonna nell’ordine in cui le hai aggiunte. È quello che si aspettano molti player di animazioni per i fotogrammi.
Il foglio non può superare 16.384 px per lato né circa 16,7 megapixel, il limite che i browser riescono a disegnare.
Usare il CSS
Il CSS contiene una classe di base con il foglio come background-image e no-repeat, poi una classe per ogni sprite, con il nome preso dal file: home.png diventa sprite-home. I nomi vengono convertiti in minuscolo, gli accenti vengono rimossi, gli altri caratteri diventano trattini e i doppioni ricevono -2, -3.
<link rel="stylesheet" href="sprite.css">
<span class="sprite sprite-home"></span>
<span class="sprite sprite-search"></span>
Ogni classe di sprite imposta width, height e un background-position con offset negativi. Uno sprite in x = 40, y = 20 riceve background-position: -40px -20px: l’intero foglio viene spostato di 40 px a sinistra e 20 px in alto all’interno dell’elemento, così attraverso il riquadro dell’elemento si vede solo quello sprite. La spaziatura evita che gli sprite vicini «sbordino» quando la pagina viene ingrandita o una texture viene filtrata.
Schermi ad alta densità: disegna le immagini al doppio della dimensione di visualizzazione, genera il foglio, poi aggiungi alla classe di base un background-size pari alla metà delle dimensioni del foglio, e dimezza larghezze, altezze e offset. Lo strumento non lo genera: è una modifica manuale.
Gli sprite servono ancora con HTTP/2?
Gli sprite sono nati per risparmiare richieste HTTP. Con il multiplexing di HTTP/2, molti piccoli file si caricano quasi veloci come uno solo, quindi il vantaggio per i siti web è molto minore, e per le icone scalabili spesso sono preferibili le icone SVG o i font di icone. Gli sprite sheet restano invece lo standard per i giochi 2D e i fotogrammi delle animazioni: una sola texture significa meno cambi di texture sulla GPU e un solo file da caricare.
Domande frequenti
Le mie immagini vengono caricate online?
No. Tutto viene decodificato, impacchettato e codificato nel browser. Le immagini non lasciano mai il tuo dispositivo.
Quali motori di gioco leggono il JSON?
Il JSON usa il formato «JSON hash» di TexturePacker: un oggetto frames con chiavi pari ai nomi dei file, ciascuno con frame (x, y, w, h), rotated: false, trimmed: false e sourceSize, più meta.image e meta.size. Phaser, PixiJS e molti altri motori lo caricano direttamente.
La trasparenza viene mantenuta?
Sì. Il foglio è un PNG, quindi i pixel trasparenti restano trasparenti. La scacchiera nell’anteprima mostra solo dove il foglio è vuoto.
Perché usare dimensioni potenza di due?
Le GPU più vecchie e WebGL 1 richiedono texture con dimensioni potenza di due per le mipmap e le modalità di ripetizione, e alcuni motori se le aspettano ancora. L’opzione arrotonda il foglio per eccesso: per esempio 300 × 70 px diventa 512 × 128 px.
Gli sprite vengono ritagliati o ruotati?
No. Ogni immagine viene inserita così com’è, con i suoi margini trasparenti, e mai ruotata, quindi le posizioni corrispondono esattamente ai tuoi file originali.
Strumenti correlati
- Dividi immagine e crea griglie Dividi un'immagine in una griglia di riquadri per un post a griglia su Instagram, una panoramica o un poster da stampare. Gratis, senza upload.
- Crea GIF animate Crea una GIF animata da foto o da un breve video, con ritardi per frame, ripetizione, tavolozza e dithering. Gratis, nel browser, senza upload.
- Crea collage di foto Crea un collage di foto online con 2–9 immagini in griglia o a mosaico, scegli formato, spaziatura e angoli e scaricalo in JPG o PNG. Senza upload.
- Generatore di favicon Crea favicon.ico, apple-touch-icon, icone PNG e site.webmanifest da un'immagine, un testo o un'emoji, con i tag HTML pronti. Nel browser, senza upload.