Gjenerues CSS sprite sheet
Gjenerues falas i CSS sprite sheet. Bashko deri në 500 imazhe në një PNG me klasa CSS background-position ose një atlas teksturash JSON, pa ngarkim.
Imazhet
- Madhësia e fletës
- Hapësira e përdorur
Si ta bësh një sprite sheet
- Lësho imazhet në zonën e zgjedhjes ose kliko mbi të për t’i zgjedhur. Pranohen PNG, SVG, WebP, JPG dhe formatet e tjera që lexon shfletuesi yt, deri në 500 imazhe. Çdo skedar shfaqet në listën Imazhet me madhësinë e tij; butoni × e heq një imazh dhe Hiq të gjitha imazhet e pastron listën.
- Zgjidh një Faqosja: Rrjetë, E ngjeshur (fleta më e vogël), Shirit horizontal ose Shirit vertikal. Me Rrjetë, Kolonat (0 = automatike) caktojnë numrin e kolonave.
- Cakto Hapësira e brendshme (px) mes sprite-ve (2 si parazgjedhje) dhe shëno Madhësi fuqi e dyshit (256, 512, 1024…) nëse motori ose GPU-ja jote e kërkon.
- Zgjidh Skedari i të dhënave: CSS (klasa background-position), JSON (hartë kuadrosh) ose CSS dhe JSON. Rregullo Emri i skedarit dhe Parashtesa e klasave CSS (të dyja “sprite” si parazgjedhje).
- Kontrollo pamjen paraprake, Madhësia e fletës dhe Hapësira e përdorur, pastaj kliko Shkarko ZIP (PNG + të dhëna) ose Shkarko vetëm PNG. Kodi i gjeneruar mund të kopjohet edhe drejtpërdrejt.
Imazhet dekodohen në shfletuesin tënd dhe asgjë nuk ngarkohet. Një SVG pa gjerësi e lartësi të veten rasterizohet me anën më të gjatë 256 px.
Zgjedhja e faqosjes
- Rrjetë i jep çdo imazhi një qelizë sa imazhi më i madh. Me kolona automatike rrjeta është afërsisht katrore. Është e thjeshtë dhe e parashikueshme, ideale kur të gjithë sprite-t kanë të njëjtën madhësi, si një grup pllakash.
- E ngjeshur (fleta më e vogël) përdor paketimin me rafte: imazhet renditen nga më i larti dhe vendosen nga e majta në të djathtë në rreshta. Mjeti provon shumë gjerësi fletësh dhe mban atë me sipërfaqen më të vogël, duke marrë parasysh rrumbullakimin në fuqi të dyshit kur ky opsion është aktiv. Më e mira për ikona me madhësi të përziera.
- Shirit horizontal dhe Shirit vertikal i vendosin imazhet në një rresht ose një kolonë sipas radhës që i ke shtuar. Kjo është ajo që pret shumica e lexuesve të animacioneve për kuadrot.
Fleta nuk mund të kalojë 16 384 px për anë ose rreth 16,7 megapiksele, kufirin që mund të vizatojnë shfletuesit.
Përdorimi i CSS-it
CSS-i përmban një klasë bazë me fletën si background-image dhe no-repeat, pastaj një klasë për çdo sprite me emrin e nxjerrë nga skedari: home.png bëhet sprite-home. Emrat kalojnë në shkronja të vogla, theksat hiqen, karakteret e tjera bëhen vizëza dhe dublikatat marrin -2, -3.
<link rel="stylesheet" href="sprite.css">
<span class="sprite sprite-home"></span>
<span class="sprite sprite-search"></span>
Çdo klasë sprite cakton width, height dhe një background-position me zhvendosje negative. Një sprite te x = 40, y = 20 merr background-position: -40px -20px: e gjithë fleta zhvendoset 40 px majtas dhe 20 px lart brenda elementit, kështu që nga kutia e elementit duket vetëm ai sprite. Hapësira e brendshme i pengon sprite-t fqinjë të futen kur faqja zmadhohet ose kur një teksturë filtrohet.
Ekrane me DPI të lartë: vizato imazhet në dyfishin e madhësisë së shfaqjes, gjenero fletën, pastaj shto background-size të vendosur në gjysmën e madhësisë së fletës te klasa bazë dhe përgjysmo gjerësitë, lartësitë dhe zhvendosjet. Mjeti nuk e gjeneron këtë; është një rregullim manual.
A janë sprite-t ende të dobishëm me HTTP/2?
Sprite-t u shpikën për të kursyer kërkesat HTTP. Me multipleksimin e HTTP/2, shumë skedarë të vegjël ngarkohen pothuajse po aq shpejt sa një i vetëm, ndaj përfitimi për faqet e internetit është shumë më i vogël dhe ikonat SVG ose shkronjat-ikona shpesh janë më të mira për ikona të shkallëzueshme. Sprite sheet mbeten standardi për lojërat 2D dhe kuadrot e animacioneve: një teksturë do të thotë më pak ndërrime teksturash në GPU dhe një skedar për t’u ngarkuar.
Pyetje të shpeshta
A ngarkohen imazhet e mia?
Jo. Gjithçka dekodohet, paketohet dhe kodohet në shfletuesin tënd. Imazhet nuk dalin kurrë nga pajisja jote.
Cilët motorë lojërash e lexojnë JSON-in?
JSON-i përdor formatin “JSON hash” të TexturePacker: një objekt frames me çelës emrin e skedarit, secili me frame (x, y, w, h), rotated: false, trimmed: false dhe sourceSize, plus meta.image dhe meta.size. Phaser, PixiJS dhe shumë motorë të tjerë e ngarkojnë drejtpërdrejt.
A ruhet tejdukshmëria?
Po. Fleta është PNG, ndaj pikselët e tejdukshëm mbeten të tejdukshëm. Fusha me katrorë në pamjen paraprake shfaqet vetëm aty ku fleta është bosh.
Pse të përdoren madhësi fuqi e dyshit?
GPU-të më të vjetra dhe WebGL 1 kërkojnë tekstura me fuqi të dyshit për mipmap dhe mënyrat e përsëritjes, dhe disa motorë ende i presin. Opsioni e rrumbullakos fletën lart, për shembull 300 × 70 px bëhet 512 × 128 px.
A pritet ose rrotullohet sprite-t?
Jo. Çdo imazh vendoset ashtu siç është, me hapësirat e tij të tejdukshme, dhe nuk rrotullohet kurrë, ndaj pozicionet përputhen saktësisht me skedarët e tu origjinalë.
Mjete të ngjashme
- Ndarës imazhi dhe krijues rrjeti Ndaj një imazh në rrjet pjesësh për Instagram, një panoramë ose një poster për printim, me pamje paraprake të prerjeve dhe skedarë të numëruar.
- Krijues GIF Krijo një GIF të animuar nga disa imazhe ose një klip i shkurtër video. Rirendit kuadrot, vendos vonesat, ciklin, madhësinë, ngjyrat. Falas, pa ngarkim.
- Krijues kolazhi fotosh Krijo një kolazh nga 2 deri në 9 foto me paraqitje rrjete dhe mozaiku, tërhiq fotot në qeliza, zhvendos e zmadho secilën dhe eksporto PNG ose JPG.
- Gjenerator i favicon Krijo favicon.ico, ikona PNG, apple-touch-icon dhe site.webmanifest nga një imazh ose emoji, me etiketa HTML gati për t'u ngjitur. Shkarkim ZIP, pa ngarkim.