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
BCVMAAAAJRQAAAAElFTkSuQmCCTen 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:
- data: — stały prefiks określający schemat
- [typ MIME] — format obrazu, na przykład
image/png,image/jpeg,image/svg+xmlouimage/gif - ;base64, — informacja, że treść jest zakodowana w Base64
- [zakodowane dane] — długi ciąg z binarną zawartością obrazu zamienioną na tekst
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>:

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:
- Zero dodatkowych zapytań HTTP — grafika siedzi w samym HTML-u lub CSS-ie, co skraca czas ładowania kluczowych elementów widocznych bez przewijania.
- Działanie offline i w poczcie — ponieważ nic nie pobiera się z zewnętrznego serwera, obraz pokaże się nawet bez połączenia (w aplikacjach offline) i w programach pocztowych blokujących zewnętrzne treści.
- Pełna przenośność — pojedynczy plik HTML z grafikami w Base64 można wysłać albo zarchiwizować bez ryzyka, że coś przestanie się wyświetlać.
- Ładowanie w jednym kroku — obraz pojawia się dokładnie w momencie renderowania elementu HTML, bez dodatkowego opóźnienia, co eliminuje przeskoki układu przy ikonach interfejsu.
Wady i ograniczenia
Base64 ma też swoją cenę, którą warto dobrze przemyśleć:
- O 33% większa objętość — zamiana na tekst zawsze zwiększa ilość przesyłanych danych. Przy dużych grafikach to dodatkowe kilobajty bez żadnego zysku.
- Brak pamięci podręcznej — zewnętrzne pliki graficzne przeglądarka zapisuje i wykorzystuje ponownie na kolejnych podstronach. Base64 osadzony w HTML-u pobiera się od nowa przy każdej wizycie, bo jest przywiązany do dokumentu.
- Utrudniona aktualizacja — podmiana grafiki wymaga ponownej konwersji pliku i wklejenia nowego, długiego ciągu do HTML-a lub CSS-a, co jest żmudne i łatwo przy tym o pomyłkę.
- Gorsza czytelność kodu — długie ciągi Base64 w CSS-ie czy HTML-u sprawiają, że plik trudno się czyta i przegląda.
- Słaba podatność na kompresję gzip — gzip i Brotli świetnie radzą sobie z powtarzalnym tekstem, ale ciągi Base64 mają wysoką entropię i niewiele na kompresji zyskują, inaczej niż binarny plik graficzny.
⚠️ 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:
- Narzędzia online — najszybsza droga przy jednorazowej potrzebie. ImageTools udostępnia narzędzie Obraz na Base64, które przetwarza dowolny obraz w przeglądarce i podaje gotowy kod do skopiowania.
- Terminal (Linux/macOS) — polecenie
base64 obraz.pnggeneruje zakodowany ciąg. Aby otrzymać pełny Data URI:echo "data:image/png;base64,$(base64 -w 0 obraz.png)". - JavaScript w przeglądarce — dzięki API
FileReadermożna asynchronicznie zamienić na Base64 dowolny plik wybrany przez użytkownika. - Webpack i bundlery — Webpack, Vite czy Rollup mają wtyczki, które podczas budowania automatycznie zamieniają małe pliki na Base64 inline, kierując się konfigurowalnym limitem wagi.
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.