Generátor CSS sprite sheetů
Zdarma generátor CSS sprite sheetů. Spoj až 500 obrázků do jednoho PNG s třídami CSS background-position nebo s texturovým atlasem JSON, bez nahrávání.
Obrázky
- Velikost sheetu
- Využité místo
Jak vytvořit sprite sheet
- Přetáhni obrázky do vyznačené oblasti, nebo na ni klikni a vyber je. Přijímají se PNG, SVG, WebP, JPG a další formáty, které prohlížeč umí číst, až 500 obrázků. Každý soubor se objeví v seznamu Obrázky se svou velikostí; tlačítko × odebere jeden obrázek a Odebrat všechny obrázky vymaže celý seznam.
- Vyber Rozvržení: Mřížka, Úsporné (nejmenší plocha), Vodorovný pás nebo Svislý pás. U Mřížky určuje počet sloupců pole Sloupce (0 = automaticky).
- Nastav Odsazení (px) mezi sprity (výchozí je 2) a zaškrtni Velikost mocniny dvou (256, 512, 1024…), pokud to vyžaduje tvůj engine nebo GPU.
- Zvol Datový soubor: CSS (třídy s background-position), JSON (mapa snímků) nebo CSS a JSON. Uprav Název souboru a Předponu tříd CSS (obojí je výchozí „sprite“).
- Zkontroluj náhled, Velikost sheetu a Využité místo, pak klikni na Stáhnout ZIP (PNG + data) nebo Stáhnout jen PNG. Vygenerovaný kód lze také rovnou zkopírovat.
Obrázky se dekódují ve tvém prohlížeči a nic se nenahrává. SVG bez vlastní šířky a výšky se rastruje tak, aby jeho delší strana měla 256 px.
Výběr rozvržení
- Mřížka dá každému obrázku buňku o velikosti největšího obrázku. Při automatickém počtu sloupců je mřížka zhruba čtvercová. Je jednoduchá a předvídatelná a ideální, když mají všechny sprity stejnou velikost, například sada dlaždic.
- Úsporné (nejmenší plocha) používá policové skládání: obrázky se seřadí od nejvyššího a umístí zleva doprava do řad. Nástroj zkouší mnoho šířek sheetu a ponechá tu s nejmenší plochou, přičemž při zapnuté volbě zohlední zaokrouhlení na mocninu dvou. Nejlepší pro ikony různých velikostí.
- Vodorovný pás a Svislý pás vloží obrázky do jedné řady nebo sloupce v pořadí, v jakém jsi je přidal(a). To očekává mnoho přehrávačů animací pro snímky.
Sheet nemůže přesáhnout 16 384 px na stranu ani asi 16,7 megapixelu, což je limit, který prohlížeče dokážou vykreslit.
Použití CSS
CSS obsahuje základní třídu se sheetem jako background-image a no-repeat, pak jednu třídu pro každý sprite pojmenovanou podle souboru: home.png se stane sprite-home. Názvy se převedou na malá písmena, odstraní se diakritika, ostatní znaky se změní na pomlčky a duplicity dostanou -2, -3.
<link rel="stylesheet" href="sprite.css">
<span class="sprite sprite-home"></span>
<span class="sprite sprite-search"></span>
Každá třída spritu nastavuje width, height a background-position se zápornými posuny. Sprite na x = 40, y = 20 dostane background-position: -40px -20px: celý sheet se uvnitř prvku posune o 40 px doleva a o 20 px nahoru, takže skrz rámeček prvku prosvítá jen tento sprite. Odsazení brání tomu, aby se sousední sprity prolínaly při zvětšení stránky nebo filtrování textury.
Displeje s vysokým DPI: nakresli obrázky ve dvojnásobné zobrazované velikosti, vygeneruj sheet, pak do základní třídy přidej background-size nastavené na polovinu velikosti sheetu a zmenši na polovinu šířky, výšky i posuny. Nástroj to negeneruje; jde o ruční úpravu.
Jsou sprity s HTTP/2 stále užitečné?
Sprity vznikly, aby šetřily požadavky HTTP. S multiplexováním v HTTP/2 se mnoho malých souborů načte téměř stejně rychle jako jeden, takže přínos pro weby je mnohem menší a pro škálovatelné ikony jsou často lepší ikony SVG nebo ikonová písma. Sprite sheety zůstávají standardem pro 2D hry a snímky animací: jedna textura znamená méně přepínání textur na GPU a jeden soubor k načtení.
Časté dotazy
Nahrávají se moje obrázky na server?
Ne. Všechno se dekóduje, skládá a kóduje ve tvém prohlížeči. Obrázky nikdy neopustí tvoje zařízení.
Které herní enginy umějí číst JSON?
JSON používá formát „JSON hash“ z TexturePackeru: objekt frames s klíči podle názvu souboru, každý s položkami frame (x, y, w, h), rotated: false, trimmed: false a sourceSize, plus meta.image a meta.size. Phaser, PixiJS a mnoho dalších enginů ho načte přímo.
Zachová se průhlednost?
Ano. Sheet je PNG, takže průhledné pixely zůstanou průhledné. Šachovnice v náhledu se zobrazuje jen tam, kde je sheet prázdný.
Proč používat velikosti mocniny dvou?
Starší GPU a WebGL 1 potřebují textury o velikosti mocniny dvou pro mipmapy a režimy opakování a některé enginy je stále očekávají. Volba sheet zaokrouhlí nahoru, například 300 × 70 px se změní na 512 × 128 px.
Ořezávají se nebo otáčejí sprity?
Ne. Každý obrázek se umístí tak, jak je, včetně průhledných okrajů, a nikdy se neotáčí, takže pozice přesně odpovídají původním souborům.
Související nástroje
- Rozdělení obrázku a tvorba mřížky Rozděl obrázek na mřížku dílků pro Instagram, panorama nebo tištěný plakát, s náhledem řezů a číslovanými soubory. Zdarma, bez nahrávání.
- Tvorba animovaného GIFu Vytvoř animovaný GIF z více obrázků nebo krátkého videa. Měň pořadí snímků, nastav zpoždění, opakování, velikost, barvy a dithering. Zdarma, bez nahrávání.
- Koláž z fotek Vytvoř koláž ze 2 až 9 fotek s rozložením jako mřížka nebo mozaika, přetahuj fotky do buněk, posouvej a zvětšuj je a exportuj PNG nebo JPG.
- Generátor favicon Vytvoř favicon.ico, ikony PNG, apple-touch-icon a site.webmanifest z jednoho obrázku nebo emoji s hotovými značkami HTML. Stažení ZIP, bez nahrávání.