Kodowanie

Data URI / Obraz Base64

Kodowanie obrazu do Data URI (data:image/…;base64,…) do wstawienia w CSS/HTML oraz dekodowanie Data URI lub surowego Base64 z powrotem do pliku — wszystko bezpośrednio w przeglądarce.

Tutaj pojawi się podgląd obrazu.

A Data URI embeds a file's contents (usually an image) directly into HTML or CSS as a Base64 string, instead of linking to a separate file. This removes an extra network request at the cost of a larger document.

How to use it

Common uses

Things to keep in mind

Base64 encoding grows the data by about 33% — for large images, a Data URI is usually a worse choice than a separate file with browser caching.

A Data URI isn't cached separately from the document it's embedded in — it gets re-downloaded along with the page every time.

Artykuł o tym narzędziu: Data URI: kiedy osadzać obrazy bezpośrednio w kodzie

Najczęstsze pytania

Kiedy warto osadzić obraz jako Data URI zamiast linkować plik?

Data URI ma sens dla małych, często używanych grafik (ikon, tła w CSS), gdy zależy Ci na ograniczeniu liczby żądań HTTP. Dla większych lub rzadko zmienianych obrazów zwykły plik jest lepszy, bo przeglądarka może go osobno cache'ować.

Jakie są praktyczne ograniczenia rozmiaru Data URI?

Data URI zwiększa rozmiar danych o około 33% względem oryginalnego pliku (narzut Base64), a niektóre przeglądarki i klienty e-mail mają limity długości URL lub atrybutu, co czyni ten format niepraktycznym dla dużych obrazów.

Czy Data URI jest cache'owany tak samo jak zwykły plik?

Nie. Data URI jest częścią dokumentu HTML lub CSS, w którym się znajduje, więc przeglądarka nie może go cache'ować niezależnie — przy każdym ładowaniu strony obraz jest pobierany razem z resztą kodu.

Czy można użyć Data URI dla SVG bez Base64?

Tak. SVG to tekst (XML), więc zamiast Base64 wystarczy percent-encoding znaków specjalnych: data:image/svg+xml,%3Csvg...%3E. Taki wariant jest bardziej kompaktowy i pozostaje edytowalny wprost w pliku CSS.

Czy Data URI można wstawić w atrybut href lub background-image?

Tak, Data URI działa wszędzie tam, gdzie oczekiwane jest odwołanie do zasobu — w src, href, background-image w CSS, a nawet w @import. Składnia i limity rozmiaru są takie same jak dla znacznika img.

Artykuły: Kodowanie

Base64: po co jest kodowanie i jak działa

Jak Base64 zamienia dane binarne na tekst ASCII i kiedy naprawdę jest to potrzebne.

Base32: czym różni się od Base64 i kiedy jest wygodniejszy

Alfabet Base32 niewrażliwy na wielkość liter i sytuacje, w których jest wygodniejszy od Base64.

URL Encode/Decode: percent-encoding w linkach

Jak znaki specjalne w adresach i parametrach zamieniają się w sekwencje %XX.

HTML Entities: jak bezpiecznie wyświetlać znaki specjalne

Dlaczego znaki < > & trzeba escapować i jak to zapobiega uszkodzeniu znaczników.

JWT: budowa tokenu i co znaczy „dekodowanie" JWT

Header, payload i signature tokenu JWT oraz dlaczego dekodowanie to nie to samo co weryfikacja podpisu.

Unicode Escape: co oznaczają sekwencje \uXXXX

Skąd biorą się sekwencje takie jak \u0041 w JSON i ciągach JS oraz co oznaczają.

ROT13 i szyfr Cezara: proste podstawianie znaków

Dlaczego przesunięcie o 13 liter sprawia, że ROT13 jest samoodwrotny, i po co się go dziś używa.

Punycode: jak umiędzynarodowione domeny działają w DNS

Jak domena z niełacińskimi znakami zamienia się w formę ASCII z prefiksem xn--.

Alfabet Morse'a: jak tekst zamienia się w kropki i kreski

Zasada kodowania liter jako kropek i kresek oraz gdzie alfabet Morse'a jest dziś stosowany.

Gzip + Base64: kompresja danych do przesyłania jako tekst

Dlaczego skompresowane dane binarne dodatkowo koduje się w Base64, zanim trafią do pola tekstowego.

XML Entities: escapowanie znaków w dokumentach XML

Pięć obowiązkowych encji XML, bez których dokument psuje się podczas parsowania.