Czym jest Base64?

Base64 to system kodowania, który zamienia dane binarne — czyli bajty składające się na obraz — w ciąg zwykłych znaków tekstowych. Nazwa bierze się stąd, że system korzysta z 64 różnych znaków (wielkie i małe litery, cyfry, + e /) do zapisania dowolnych danych.

W praktyce oznacza to, że każdy plik graficzny da się zamienić w długi ciąg tekstu, taki jak ten:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4 BCVMAAAAJRQAAAAElFTkSuQmCC

Ten format nazywa się Data URI (albo data URL). Zamiast wskazywać na zewnętrzny plik, adres niesie ze sobą samą treść obrazu zapisaną jako tekst. Przeglądarka odczytuje ten ciąg i od razu wyświetla grafikę, bez dodatkowego zapytania HTTP.

Jak zbudowany jest Data URI

Każdy graficzny Data URI ma ten sam schemat:

data:[typ MIME];base64,[zakodowane dane]

Poszczególne elementy to:

Warto pamiętać, że kodowanie Base64 zwiększa objętość danych o mniej więcej 33%. Grafika o wadze 3 KB zamienia się w ciąg ważący około 4 KB. Ten narzut wynika stąd, że do zapisania tych samych bajtów potrzeba więcej znaków.

Jak używać Base64 w HTML-u

Aby wyświetlić obraz Base64 bezpośrednio w HTML-u, wystarczy wstawić Data URI w atrybucie src znacznika <img>:

Ikona

Przeglądarka traktuje taki element dokładnie jak zwykły obrazek. Możesz nadać mu style CSS, ustawić szerokość i wysokość oraz użyć go wszędzie tam, gdzie pasowałby zwykły <img> .

Jak używać Base64 w CSS-ie

W CSS-ie Data URI wykorzystuje się głównie we właściwościach tła:

.icon { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucy..."); width: 24px; height: 24px; background-size: contain; background-repeat: no-repeat; }

Ta technika szczególnie często służy do osadzania małych ikon SVG którym kolor nadaje się dynamicznie w CSS-ie, oraz teł wchodzących w skład komponentów wielokrotnego użytku w bibliotekach.

💡 Wskazówka dla SVG: pliki SVG można osadzać jako Base64 albo wkleić wprost do HTML-a jako SVG inline, bez żadnego kodowania. Wersja inline jest czytelniejsza i łatwiejsza w obsłudze z poziomu CSS-a i JavaScriptu, a Base64 sprawdza się wtedy, gdy SVG ląduje w zewnętrznym pliku CSS.

Kiedy stosować Base64, a kiedy odpuścić

Wybór między Base64 a zewnętrznym plikiem zależy przede wszystkim od wagi grafiki i kontekstu, w jakim jest używana. Poniższa tabela zbiera najczęstsze scenariusze:

Sytuacja Zalecenie Dlaczego
Małe ikony i sprite'y (< 2 KB) ✅ Base64 wskazany Oszczędza jedno zapytanie HTTP bez odczuwalnego wzrostu wagi
Favicony osadzone w CSS-ie ✅ Base64 wskazany Wygodne i niezależne od zewnętrznego pliku
Elementy zastępcze i szkielety podczas ładowania ✅ Base64 wskazany Ładują się natychmiast razem z HTML-em, bez migotania treści
Wiadomości e-mail w HTML-u ✅ Base64 wskazany Wiele programów pocztowych blokuje zewnętrzne obrazy
Grafiki treściowe (zdjęcia, banery) ❌ Lepiej unikać Zwiększa wagę HTML-a i blokuje pamięć podręczną przeglądarki
Obrazy powyżej 5 KB ❌ Lepiej unikać Narzut objętości (+33%) spowalnia ładowanie
Grafiki powtarzające się na wielu podstronach ❌ Lepiej unikać Zewnętrzny plik trafia do pamięci podręcznej, a Base64 pobiera się od nowa na każdej podstronie

Zalety Base64 przy obrazach

Użyty we właściwym miejscu Base64 daje realne korzyści:

Wady i ograniczenia

Base64 ma też swoją cenę, którą warto dobrze przemyśleć:

⚠️ Praktyczna zasada: stosuj Base64 wyłącznie do grafik poniżej 2 KB. W każdym innym przypadku zoptymalizowany plik zewnętrzny — najlepiej w formacie WebP lub AVIF — będzie lepszy dla wydajności strony.

Base64 a wydajność strony (PageSpeed)

Wpływ Base64 na wydajność zależy wprost od tego, co kodujesz. Przy małych ikonach rezygnacja z jednego zapytania HTTP potrafi poprawić odczuwalny Time to First Byte i zmniejszyć liczbę potrzebnych równoległych połączeń. To z kolei korzystnie odbija się na wskaźnikach Core Web Vitals, zwłaszcza na LCP (Largest Contentful Paint), gdy głównym elementem strony jest osadzona ikona.

Z drugiej strony osadzanie dużych obrazów w Base64 bezpośrednio zwiększa wagę dokumentu HTML i opóźnia start renderowania. Google PageSpeed Insights zwykle obniża ocenę stronom z przeładowanym HTML-em. Przy zdjęciach i banerach właściwą drogą pozostaje zoptymalizowany plik zewnętrzny.

Jeśli chcesz przygotować grafiki pod internet, zacznij od kompresji i zmiany formatu na wydajniejszy. Narzędzie Kompresuj od ImageTools robi to bezpośrednio w przeglądarce, bez wysyłania plików na jakikolwiek serwer.

Jak przekonwertować obraz na Base64

Ciąg Base64 z obrazu można uzyskać na kilka sposobów:

Przekonwertuj obraz na Base64

Wgraj swój obraz i odbierz pełny Data URI, gotowy do wklejenia w HTML lub CSS. Całe przetwarzanie odbywa się w przeglądarce.

Otwórz narzędzie Base64 →

Najczęstsze pytania

Czym jest Base64 w przypadku obrazów?

Base64 to sposób kodowania danych binarnych (na przykład obrazów) jako tekstu ASCII. Zamiast wczytywać osobny plik graficzny, jego zawartość zamienia się w długi ciąg znaków, który można wkleić wprost do HTML-a lub CSS-a, tworząc Data URI.

Czy konwersja obrazu na Base64 pogarsza wydajność strony?

To zależy od zastosowania. Przy małych grafikach (ikony, favicony, elementy zastępcze) Base64 potrafi ją poprawić, bo eliminuje jedno zapytanie HTTP. Przy dużych obrazach zwiększa wagę strony i blokuje pamięć podręczną przeglądarki, więc działa na niekorzyść.

Jaki jest zalecany maksymalny rozmiar pliku dla Base64?

Praktyczna zasada mówi: Base64 tylko dla grafik poniżej 2 KB. Powyżej tej granicy narzut kodowania (około 33% więcej danych) i utrata pamięci podręcznej sprawiają, że zewnętrzny plik wypada korzystniej.

Czy Base64 działa we wszystkich przeglądarkach?

Tak. Format Data URI z Base64 obsługują wszystkie nowoczesne przeglądarki: Chrome, Firefox, Safari, Edge i ich mobilne odpowiedniki. Bardzo stare przeglądarki, jak IE6, sobie z tym nie radzą, ale dziś nie ma to praktycznego znaczenia.

Jak przekonwertować obraz na Base64 online?

Możesz skorzystać z narzędzia Obraz na Base64 od ImageTools. Wystarczy wgrać plik, a narzędzie samo wygeneruje ciąg Base64 i gotowy kod Data URI do wklejenia w HTML lub CSS.