CSS-sprite sheet -generaattori
Ilmainen CSS-sprite sheet -generaattori. Yhdistä jopa 500 kuvaa yhdeksi PNG:ksi CSS-background-position-luokilla tai JSON-tekstuuriatlaksella ilman lähetystä.
Kuvat
- Arkin koko
- Käytetty tila
Näin teet sprite sheetin
- Pudota kuvasi pudotusalueelle tai valitse ne napsauttamalla aluetta. PNG, SVG, WebP, JPG ja muut selaimesi lukemat muodot kelpaavat, enintään 500 kuvaa. Jokainen tiedosto ilmestyy Kuvat-luetteloon kokoineen. ×-painike poistaa yhden kuvan ja Poista kaikki kuvat tyhjentää luettelon.
- Valitse Asettelu: Ruudukko, Pakattu (pienin arkki), Vaakasuuntainen nauha tai Pystysuuntainen nauha. Ruudukolla Sarakkeet (0 = automaattinen) määrää sarakkeiden määrän.
- Aseta spritejen välinen Väli (px) (oletuksena 2) ja rastita Kahden potenssin koko (256, 512, 1024…), jos pelimoottorisi tai näytönohjaimesi sitä vaatii.
- Valitse Datatiedosto: CSS (background-position-luokat), JSON (kehyskartta) tai CSS ja JSON. Säädä Tiedostonimi ja CSS-luokan etuliite (molemmat oletuksena ”sprite”).
- Tarkista esikatselu, Arkin koko ja Käytetty tila ja napsauta sitten Lataa ZIP (PNG + data) tai Lataa vain PNG. Myös Luodun koodin voi kopioida suoraan.
Kuvat puretaan selaimessasi, eikä mitään lähetetä palvelimelle. SVG, jolla ei ole omaa leveyttä ja korkeutta, rasteroidaan niin, että sen pidempi sivu on 256 px.
Asettelun valinta
- Ruudukko antaa jokaiselle kuvalle suurimman kuvan kokoisen solun. Automaattisilla sarakkeilla ruudukko on suunnilleen neliö. Se on yksinkertainen ja ennustettava, ja se sopii ihanteellisesti, kun kaikki spritet ovat samankokoisia, kuten laattasarjassa.
- Pakattu (pienin arkki) käyttää hyllypakkausta: kuvat lajitellaan korkein ensin ja sijoitetaan vasemmalta oikealle riveihin. Työkalu kokeilee useita arkin leveyksiä ja säilyttää pienimmän pinta-alan antavan, ottaen huomioon kahden potenssin pyöristyksen, kun se on valittuna. Paras eri kokoisille kuvakkeille.
- Vaakasuuntainen nauha ja Pystysuuntainen nauha asettavat kuvat yhdelle riville tai sarakkeeseen lisäysjärjestyksessä. Sitä monet animaatiosoittimet odottavat kehyksiltä.
Arkki ei voi ylittää 16 384 px:ää per sivu eikä noin 16,7 megapikseliä, mikä on selainten piirtoraja.
CSS:n käyttö
CSS sisältää peruskaluokan, jossa arkki on background-image ja no-repeat, sekä yhden luokan kutakin spriteä kohti sen tiedostonimestä nimettynä: home.png muuttuu muotoon sprite-home. Nimet muutetaan pieniksi kirjaimiksi, aksentit poistetaan, muut merkit muutetaan tavuviivoiksi ja kaksoiskappaleille lisätään -2, -3.
<link rel="stylesheet" href="sprite.css">
<span class="sprite sprite-home"></span>
<span class="sprite sprite-search"></span>
Jokainen sprite-luokka asettaa width, height ja background-position-arvon negatiivisin siirtymin. Sprite kohdassa x = 40, y = 20 saa arvon background-position: -40px -20px: koko arkkia siirretään elementin sisällä 40 px vasemmalle ja 20 px ylös, joten vain kyseinen sprite näkyy elementin laatikon läpi. Väli estää naapurispritejä vuotamasta mukaan, kun sivua zoomataan tai tekstuuria suodatetaan.
Korkean DPI:n näytöt: piirrä kuvat kaksinkertaisiksi näyttökokoonsa nähden, luo arkki, lisää sitten peruskaluokkaan background-size, jonka arvo on puolet arkin koosta, ja puolita leveydet, korkeudet ja siirtymät. Työkalu ei luo tätä: se on manuaalinen säätö.
Ovatko spritet vielä hyödyllisiä HTTP/2:n aikakaudella?
Spritet keksittiin HTTP-pyyntöjen säästämiseksi. HTTP/2:n multipleksauksella monta pientä tiedostoa latautuu lähes yhtä nopeasti kuin yksi, joten verkkosivujen hyöty on paljon pienempi, ja SVG-kuvakkeet tai kuvakefontit ovat usein parempia skaalautuville kuvakkeille. Sprite sheetit ovat edelleen 2D-pelien ja animaatiokehysten vakioratkaisu: yksi tekstuuri tarkoittaa vähemmän näytönohjaimen tekstuurinvaihtoja ja yhden ladattavan tiedoston.
Usein kysytyt kysymykset
Lähetetäänkö kuvani palvelimelle?
Ei. Kaikki puretaan, pakataan ja koodataan selaimessasi. Kuvat eivät poistu laitteeltasi.
Mitkä pelimoottorit osaavat lukea JSON-tiedoston?
JSON käyttää TexturePackerin ”JSON hash” -muotoa: frames-objekti, jonka avaimina ovat tiedostonimet ja jonka jokaisessa on frame (x, y, w, h), rotated: false, trimmed: false ja sourceSize, sekä meta.image ja meta.size. Phaser, PixiJS ja monet muut moottorit lataavat sen suoraan.
Säilyykö läpinäkyvyys?
Kyllä. Arkki on PNG, joten läpinäkyvät pikselit pysyvät läpinäkyvinä. Esikatselun ruutukuvio näkyy vain siellä, missä arkki on tyhjä.
Miksi käyttää kahden potenssin kokoja?
Vanhemmat näytönohjaimet ja WebGL 1 vaativat kahden potenssin tekstuureja mipmapeille ja toistotiloille, ja jotkin moottorit odottavat niitä edelleen. Valinta pyöristää arkin ylöspäin, esimerkiksi 300 × 70 px muuttuu kooksi 512 × 128 px.
Rajataanko tai kierretäänkö spritejä?
Ei. Jokainen kuva sijoitetaan sellaisenaan läpinäkyvine marginaaleineen, eikä sitä koskaan kierretä, joten sijainnit vastaavat täsmälleen alkuperäisiä tiedostojasi.
Aiheeseen liittyvät työkalut
- Kuvan jakaja ja ruudukon tekijä Jaa kuva ruuduiksi Instagram-ruudukkoa, panoraamaa tai tulostettavaa julistetta varten. Leikkauksen esikatselu ja numeroidut tiedostot, ei lähetystä.
- GIF-animaation teko Tee animoitu GIF useista kuvista tai lyhyestä videoleikkeestä. Järjestä ruudut, säädä viiveet, toisto, koko, värit ja dithering. Ilmainen, ei lähetystä.
- Kollaasin teko Tee kuvakollaasi 2–9 valokuvasta ruudukko- ja mosaiikkiasetteluilla, vedä kuvat ruutuihin, siirrä ja zoomaa jokaista ja vie PNG- tai JPG-tiedostona.
- Favicon-generaattori Luo favicon.ico, PNG-kuvakkeet, apple-touch-icon ja site.webmanifest yhdestä kuvasta tai emojista valmiilla HTML-tunnisteilla. ZIP-lataus, ei lähetystä.