Generator sprite sheet

Przywracanie wybranego pliku...

Przeciągnij zestaw obrazów, a generator ułoży je na jednolitej siatce i narysuje jeden PNG typu sprite sheet w przeglądarce, a następnie utworzy CSS z przesunięciem background-position dla każdego sprite’a. Wszystko działa lokalnie na płótnie (canvas), więc nic nie jest wysyłane na serwer. Przydatne do zestawów ikon, klatek gier retro i stanów interfejsu, gdy wolisz jeden plik zamiast wielu osobnych obrazów. Ty ustalasz liczbę kolumn, rozmiar kafelka, odstęp między komórkami i tło (przezroczyste, białe lub czarne).

Jak powstaje sprite sheet

  1. 1

    Przeciągnij obrazy

    Dodaj pliki PNG, JPG lub WebP. Zmień ich kolejność przyciskami w górę/w dół albo usuń wybraną klatkę; arkusz jest przebudowywany natychmiast.

  2. 2

    Ustaw siatkę

    Wybierz liczbę kolumn; liczba wierszy wynika z liczby dodanych obrazów. Każdy obraz jest skalowany, by zmieścił się w kwadratowym kafelku, z zachowaniem proporcji i wyśrodkowany.

  3. 3

    Dostosuj rozmiar kafelka i odstęp

    Wybierz rozmiar kafelka w pikselach i dodaj odstęp między komórkami, aby sąsiednie sprite'y nie zlewały się przy skalowaniu.

  4. 4

    Pobierz PNG i skopiuj CSS

    Zapisz sprite sheet jako pojedynczy PNG i skopiuj wygenerowane klasy CSS, jedną regułę `.spr-nazwa` na obraz z szerokością, wysokością i background-position.

Jak działa układ

Generator używa jednego, przewidywalnego układu: jednolitej siatki. Ustalasz liczbę kolumn, a liczba wierszy to zaokrąglenie_w_górę(obrazy / kolumny). Każda komórka ma ten sam kwadratowy rozmiar (wybrany rozmiar kafelka), więc każdy obraz jest skalowany, by zmieścił się w swojej komórce z zachowaniem proporcji, i jest wyśrodkowany. Obrazy o różnych rozmiarach trafiają do jednakowych komórek, dokładnie tego oczekują sprite’y CSS z background-position.

Ustawienie Zakres Efekt
Kolumny 1 do 16 Sprite’y na wiersz; wiersze liczone automatycznie
Rozmiar kafelka 32 do 512 px Kwadratowa komórka, w którą wpasowany jest każdy obraz
Odstęp 0 do 64 px Przezroczysta przerwa między komórkami zapobiegająca zlewaniu przy skalowaniu
Tło Przezroczyste / Białe / Czarne Wypełnienie za sprite’ami w wyjściowym PNG

Postać wygenerowanego CSS

Każdy obraz staje się klasą nazwaną od pliku (.spr-<nazwa>), o rozmiarze kafelka i przesunięty na swoją komórkę. Przy czterech kolumnach, rozmiarze kafelka 128 px i bez odstępu arkusz wygląda tak:

.spr-idle  { width: 128px; height: 128px; background: url(spritesheet.png) -0px -0px; }
.spr-walk  { width: 128px; height: 128px; background: url(spritesheet.png) -128px -0px; }
.spr-run   { width: 128px; height: 128px; background: url(spritesheet.png) -256px -0px; }
.spr-jump  { width: 128px; height: 128px; background: url(spritesheet.png) -384px -0px; }
.spr-fall  { width: 128px; height: 128px; background: url(spritesheet.png) -0px -128px; }

Przesunięcie zmienia się w dwóch wymiarach: sprite’y wypełniają każdy wiersz od lewej do prawej, a potem przechodzą do następnego wiersza. Zapisz PNG jako spritesheet.png obok swojego CSS (albo zmień url(...), aby pasowało do Twojej ścieżki).

Odstęp i zlewanie

Sprite’y spakowane krawędź w krawędź mogą się zlewać, gdy przeglądarka skaluje arkusz (niecałkowite proporcje pikseli, transformacje CSS). Dodaj 2 do 4 pikseli odstępu między komórkami, aby sąsiednie piksele nie przenikały.

Ekrany o wysokiej gęstości (retina)

Nie ma automatycznego eksportu 2x, ale ostrzejszy arkusz zrobisz prosto: wybierz większy rozmiar kafelka (na przykład 256 px zamiast 128 px), aby każdy sprite niósł więcej pikseli, a potem wyświetl go w połowie rozmiaru CSS. Dzięki temu masz ostre sprite’y na ekranach o dużej gęstości bez osobnego przebiegu.

Sprite sheety a alternatywy

  • Sprite sheety: klasyczne zestawy ikon w CSS, klatki gier HTML5 i strony, które zyskują na połączeniu wielu małych obrazów w jeden plik.
  • Sprite’y SVG (symbol): lepsze do nowoczesnych ikon interfejsu, skalują się bez strat, przyjmują fill w CSS, bez żonglowania background-position.
  • Fonty ikon: ograniczone, ale wciąż używane do maleńkich jednokolorowych ikon.
  • Osobne pliki z HTTP/2 lub HTTP/3: multipleksowanie sprawia, że liczba żądań znaczy mniej niż kiedyś.

Najczęściej zadawane pytania

Obrazy pozostają w przeglądarce. W widoku wieloetapowym wybrane pliki i układ są tymczasowo przechowywane w tej karcie przeglądarki przez maksymalnie 30 minut. Nic nie jest wysyłane na serwer ani umieszczane w adresie URL.

Tak, ale wbudowane SVG lub sprite’y SVG <symbol> zwykle lepiej pasują do frameworków komponentowych. Sprite sheety CSS sprawdzają się, gdy na statycznych stronach jednocześnie widać wiele obrazów.

Ustaw liczbę kolumn równą liczbie klatek, aby każda była w jednym wierszu, a następnie steruj nią za pomocą animation-timing-function: steps(N) w CSS i background-position przeskakującego komórka po komórce. Dobrze działa do krótkich animacji w pętli (spinnery, stany bezczynności).

Każda komórka siatki ma ten sam kwadratowy rozmiar (wybrany rozmiar kafelka), więc każdy obraz jest wpasowywany w swoją komórkę i wyśrodkowany. Jeśli Twoje sprite’y to już identyczne kwadraty, ustaw odpowiadający rozmiar kafelka, a przejdą bez zmian.

Powiązane narzędzia