Zakoduj obraz do Base64 / Data URI
- Panel
- Dokumentacja
- API
Format pliku
Możesz wgrać nieograniczoną liczbę obrazów o maksymalnej wadze 20M.
Bezpieczeństwo
Twoje dane nie są przechowywane na naszych serwerach.
Obsługiwane przeglądarki
Wszystkie aktualne przeglądarki są obsługiwane. Jeśli mimo to napotkasz błąd, daj nam znać, byśmy mogli go naprawić.
Czym jest Data URI?
Data URI to URL, który zawiera bezpośrednio dane zasobu zamiast wskazywać na zdalny plik.
Jego ogólna forma to data:[<mediatype>][;base64],<data>. Dla obrazu zazwyczaj
mamy data:image/png;base64,iVBORw0KGgo…. Zasób jest osadzony w HTML, CSS lub JSON i ładowany
bez żadnego dodatkowego żądania HTTP.
Dlaczego kodować obraz w Base64?
Typowe motywacje:
- Zmniejszyć liczbę żądań HTTP: osadzić ikonę bezpośrednio w CSS zamiast ładować ją dodatkowo z dokumentem
- Sygnatura e-mail z obrazem inline: brak ryzyka, że obraz zostanie zablokowany jako zdalna treść
- Web Components / Web Workers: gdzie ładowanie zewnętrznego zasobu często stwarza problem zakresu lub CORS
- Storage lokalny (LocalStorage, IndexedDB, baza danych): serializacja miniatury awatara w postaci ciągu
- Self-contained snippets: plik HTML, który jest samowystarczalny, bez zewnętrznej zależności
Typowe przypadki użycia
Kilka konkretnych kontekstów, w których kodowanie Base64 obrazu jest uzasadnione:
- Ikony SVG inline w CSS (
background-image: url("data:image/svg+xml;base64,…")) - Spersonalizowane sygnatury e-mail z logo
- Szybkie prototypowanie samodzielnej strony udostępnianej przez e-mail
- Samodzielne web components (jeden plik do wdrożenia)
- Generowanie PDF po stronie przeglądarki (jsPDF) z osadzonymi miniaturami
- Dane testowe (mocki), które zawierają obrazy
Jak korzystać
Trzy kroki:
- Prześlij swój obraz (PNG, JPG, SVG, WebP, GIF) przez obszar upuszczania
- Kliknij „Koduj"
- Skopiuj wynikowy Data URI dedykowanym przyciskiem i wklej go w swój HTML, CSS lub JSON
Ograniczenia i dobre praktyki
Base64 nie jest cudownym rozwiązaniem. Kilka uwag:
- Base64 zwiększa rozmiar o ~33%: 4 znaki ASCII na każde 3 bajty binarne
- Zakodowane obrazy nie są buforowane oddzielnie przez przeglądarkę, są przeładowywane wraz z zawierającym je HTML/CSS
- Preferowane dla obrazów poniżej 10 KB, powyżej zewnętrzny plik jest zazwyczaj bardziej wydajny
- Dla SVG preferuj kodowanie URL (przez
encodeURIComponent) zamiast Base64: wynik jest krótszy i pozostaje parsowalny jako tekst - Nowoczesne narzędzia do budowania (Webpack, Vite) automatyzują wybór Base64 vs zewnętrzny plik za pomocą konfigurowalnego progu rozmiaru
Konkretne przykłady
HTML:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAAS+rJYwAAAAASUVORK5CYII=" alt="pixel">
CSS:
.icon {
background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0i…") no-repeat;
width: 16px;
height: 16px;
}
JSON (mock data):
{
"user": {
"name": "Adrien",
"avatar": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA…"
}
}
FAQ
Jaka jest różnica między Base64 a binarnym?
Binarne reprezentuje surowe bajty pliku. Base64 to kodowanie, które przekształca te bajty w 64 drukowalne znaki ASCII (A-Z, a-z, 0-9, +, /). Konteksty tekstowe (HTML, JSON, e-mail) nie mogą przenosić danych binarnych, Base64 rozwiązuje ten problem kosztem zwiększenia rozmiaru o 33%.
Dlaczego moja Data URI jest tak długa?
Obraz 30 KB w postaci binarnej staje się ~40 KB w Base64. A każdy znak to bajt ASCII, więc tak, ciąg jest długi. To jest właściwość kodowania. Dla dużych obrazów zachowaj zewnętrzny plik.
Czy wszystkie przeglądarki wspierają Data URI?
Tak, bez wyjątku wśród nowoczesnych przeglądarek (Chrome, Firefox, Safari, Edge a nawet IE8). Ograniczenia historyczne: IE8 miał limit 32 KB. Dziś nie ma już problemu w sieci.
Jak odkodować Data URI?
Nasz dekoder obrazów Base64 wykonuje operację odwrotną: wklej swoje Data URI, otrzymaj plik obrazu (PNG, JPG, SVG, WebP) gotowy do przesłania lub zapisania.
Base64 vs kodowanie URL dla SVG?
Dla SVG kodowanie URL (przez encodeURIComponent) produkuje krótszy ciąg niż Base64 i
pozostaje czytelne jako tekst. To zalecany wybór w CSS przy osadzaniu SVG inline. Dla formatów binarnych
(PNG, JPG) Base64 pozostaje obowiązkowe.
Czy kodowanie Base64 wpływa na jakość obrazu?
Nie. Kodowanie jest bezstratne: jest to bijekcja bajt binarny ↔ ciąg Base64. Oryginalne piksele są ściśle zachowane. Tylko rozmiar transportowanego pliku rośnie o 33%.
Najczęściej zadawane pytania
Kiedy lepiej unikać Data URI?
Gdy obraz przekracza kilkanaście kilobajtów i ma być wielokrotnie wykorzystywany na wielu stronach, zewnętrzny plik jest preferowany. Przeglądarka może go wtedy buforować oddzielnie od HTML, który się do niego odwołuje. Data URI wydłuża główny dokument i wymusza ponowne pobranie obrazu przy każdym ładowaniu strony.
Czy mój obraz jest wysyłany na serwer?
Obraz przechodzi przez nasz serwer przez czas kodowania i nie jest przechowywany po zwróceniu wyniku.
Żadna usługa zewnętrzna nie jest wykorzystywana. Dla ściśle poufnego pliku, lokalnym odpowiednikiem
jest base64 -w 0 mon-image.png w systemie Linux lub
certutil -encode w systemie Windows.
Dlaczego preferować kodowanie URL zamiast base64 dla SVG?
SVG to tekst XML. Zakodowany w base64 staje się nieczytelny i około 33% bardziej obszerny.
W kodowaniu URL przez encodeURIComponent wynik pozostaje czytelny i krótszy.
W CSS, zapis url("data:image/svg+xml;utf8,<svg…>") ze specjalnymi znakami
escapowanymi daje mniejszy plik końcowy niż wersja base64.
Jaki jest maksymalny rozmiar, który mogę zakodować?
Rozmiar pliku akceptowany przez formularz jest ograniczony do kilku megabajtów, co wystarcza dla zdecydowanej większości ikon, miniatur i awatarów. Powyżej tego wychodzisz poza rozsądny przypadek użycia Data URI: statyczny plik serwowany przez twoje CDN będzie znacznie wydajniejszy dla przeglądarki i dla twoich metryk Core Web Vitals.
Dlaczego przeglądarka nie buforuje Data URI?
Pamięć podręczna HTTP działa według URL. Data URI jest częścią zawierającego ją dokumentu, więc jest
przeładowywana wraz z nim. Zewnętrzna ikona icon.png jest natomiast buforowana raz na
zawsze i ponownie używana na wszystkich stronach, które się do niej odwołują. To główny powód, dla
którego Data URI pozostaje narzędziem niszowym, a nie zastępnikiem ogólnym.
Przykładowe zapytanie
curl -X POST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute \
-F "file=@/path/to/file"
Schemat wejściowy
| Pole | Typ | Wymagane | Domyślnie |
|---|---|---|---|
file |
file | ✓ | – |
to narzędzie wymaga pliku - użyj Content-Type multipart/form-data zamiast application/json
Punkty końcowe
GET https://cdrn.fr/api/v1/tools- lista wszystkich dostępnych narzędziGET https://cdrn.fr/api/v1/tools/base64-image-encoder- zwraca schemat dla tego narzędziaPOST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute- uruchamia to narzędzie z payloadem JSON