Koduoti paveikslą į Base64 / Data URI

paverčia jūsų paveikslus į base64 failus, idealu integruoti paveikslus tiesiogiai į HTML arba CSS kodą
Failo formatas

Galite įkelti neribotą skaičių vaizdų, kurių didžiausias svoris yra 20M.

Saugumas

Jūsų duomenys nėra saugomi mūsų serveriuose.

Palaikomos naršyklės

Palaikomos visos naujausios naršyklės. Tačiau jei susiduriate su klaida, praneškite mums, kad ištaisytume.

Kas yra duomenų URI?

Duomenų URI yra URL, kuriame vietoje yra tiesiogiai ištekliaus duomenys nukreipkite į nuotolinį failą. Bendra jo forma yra duomenys:[][;base64],. Vaizdui paprastai turime duomenys:image/png;base64,iVBORw0KGgo…. Išteklius įterptas į HTML, CSS arba JSON ir įkeliamas be jokios papildomos HTTP užklausos.

Kodėl koduoti vaizdą Base64?

Dažni motyvai:

  • Sumažinkite HTTP užklausas: integruokite piktogramą tiesiai į CSS, o ne įkelkite ją kartu su dokumentu.
  • El. pašto parašas su tiesioginiu vaizdu: nėra rizikos, kad vaizdas bus užblokuotas kaip nuotolinis turinys
  • Žiniatinklio komponentai / žiniatinklio darbuotojai: kai įkeliant išorinį šaltinį dažnai kyla aprėpties arba CORS problema
  • Vietinė saugykla („LocalStorage“, „IndexedDB“, duomenų bazė): serijos pseudoportreto miniatiūra į eilutę
  • Savarankiški fragmentai: savarankiškas HTML failas be išorinių priklausomybių

Tipiški naudojimo atvejai

Kai kurie konkretūs kontekstai, kuriuose „Base64“ vaizdo kodavimas yra pagrįstas:

  • SVG tiesioginės piktogramos CSS (fono vaizdas: url("data:image/svg+xml;base64,..."))
  • Suasmeninti el. pašto parašai su logotipu
  • Greitas atskiro puslapio, bendrinamo el. paštu, prototipas
  • Atskirai žiniatinklio komponentai (vienas diegiamas failas)
  • Naršyklės pusės PDF generavimas (jsPDF) su įterptomis miniatiūromis
  • Tikrinti duomenis (pavyzdžius), kuriuose yra vaizdų

Kaip juo naudotis

Trys žingsniai:

  1. Įkelkite savo vaizdą (PNG, JPG, SVG, WebP, GIF) per nuleidimo zoną
  2. Spustelėkite „Koduoti“
  3. Nukopijuokite gautą duomenų URI naudodami tam skirtą mygtuką ir įklijuokite jį į HTML, CSS arba JSON.

Ribos ir geriausia praktika

Base64 nėra sidabrinė kulka. Kai kurios atsargumo priemonės:

  • Base64 padidina dydį ~33 %: 4 ASCII simboliai kas 3 dvejetainius baitus
  • Koduoti vaizdai nėra atskirai saugomi naršyklės talpykloje; jie iš naujo įkeliami su HTML/CSS, kuriame jie yra
  • Pageidautina vaizdams, mažesniems nei 10 KB; be to, išorinis failas paprastai yra efektyvesnis
  • Naudojant SVG, pirmenybę teikite URL kodavimui (per encodeURIComponent), o ne Base64: rezultatas yra trumpesnis ir lieka analizuojamas kaip tekstas
  • Šiuolaikiniai kūrimo įrankiai („Webpack“, „Vite“) automatizuoja „Base64“ ir „Base64“ pasirinkimą. išorinį failą per konfigūruojamą slenksčio dydį

Konkretūs pavyzdžiai

HTML:

pikselis
        CSS:
    

.icon {
  background: url("duomenys: vaizdas/svg+xml;base64,PHN2ZyB4bWxucz0i...") nesikartoti;
  plotis: 16px;
  aukštis: 16px;
}

JSON (bandyti duomenys):

{
  "vartotojas": {
    "vardas": "Adrien",
    „avataras“: „data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA…“
  }
}

DUK

Kuo skiriasi Base64 ir dvejetainė?

Dvejetainis reiškia neapdorotus failo baitus. Base64 yra kodavimas, kuris transformuoja šiuos baitus 64 spausdinamuose ASCII simboliuose (A-Z, a-z, 0-9, +, /). Teksto kontekstai (HTML, JSON, el. paštas) ne negali nešti dvejetainio; „Base64“ išsprendžia šią problemą už 33% pridėtinių išlaidų.

Kodėl mano duomenų URI toks ilgas?

30 KB vaizdas dvejetainiu formatu tampa ~ 40 KB Base64. Ir kiekvienas simbolis yra ASCII baitas, taigi taip, grandinė ilga. Tai būdinga kodavimui. Dideliems vaizdams pasilikite išorinį failą.

Ar visos naršyklės palaiko duomenų URI?

Taip, be išimties tarp šiuolaikinių naršyklių („Chrome“, „Firefox“, „Safari“, „Edge“ net nuo IE8). Ribos istorinis: IE8 ribota iki 32 KB. Šiandien žiniatinklyje nebereikia nerimauti.

Kaip iššifruoti duomenų URI?

Mūsų Base64 vaizdo dekoderis veikia priešingai: įklijuokite duomenų URI, paruoškite vaizdo failą (PNG, JPG, SVG, WebP) įkelti arba išsaugoti.

Base64 ir URL kodavimas SVG?

SVG URL kodavimas (su encodeURIComponent) sukuria trumpesnę eilutę nei Base64 ir lieka skaitomas kaip tekstas. Tai rekomenduojamas CSS pasirinkimas integruojant SVG eilutę. Dvejetainiams formatams (PNG, JPG) Base64 išlieka privalomas.

Ar „Base64“ kodavimas turi įtakos vaizdo kokybei?

Ne. Kodavimas yra be nuostolių: tai dvejetainis baitas ↔ Base64 eilutės bijekcijos. Pikseliai originalas yra griežtai saugomas. Tik perkeliamo failo dydis padidėja 33%.

Dažnai užduodami klausimai

Kada geriau vengti duomenų URI?

Kai tik vaizdas viršija dešimt kilobaitų ir gali būti naudojamas pakartotinai keliuose puslapiuose geriau naudoti išorinį failą. Tada naršyklė gali jį įdėti talpyklą atskirai nuo ją nurodančio HTML. Duomenų URI išplečia pagrindinį dokumentą ir reikalauja kad iš naujo atsisiųstumėte vaizdą kiekvieną kartą įkeliant puslapį.

Ar mano vaizdas siunčiamas į serverį?

Vaizdas perduodamas per mūsų serverį kodavimo metu ir nėra saugomas po grąžinimo rezultato. Trečiųjų šalių paslaugų neprašoma. Griežtai konfidencialia byla, vietinis atitikmuo yra base64 -w 0 my-image.png Linux arba certutil -encode sistemoje „Windows“.

Kodėl SVG naudoti URL kodavimą, o ne base64?

SVG yra XML tekstas. Užkoduota Base64, ji tampa neįskaitoma ir apie 33% didesnė. URL koduojant naudojant encodeURIComponent, rezultatas lieka skaitomas ir trumpesnis. CSS parašykite url("data:image/svg+xml;utf8,") su simboliais Ištrūkę specialieji rezultatai galutinis failas yra mažesnis nei base64 versija.

Kokio didžiausio dydžio galiu užkoduoti?

Formoje priimtinas failo dydis yra ribojamas iki kelių megabaitų, kurių pakanka didžioji dauguma piktogramų, miniatiūrų ir avatarų. Be to, paliekate protingo naudojimo atvejį Duomenų URI: statinis failas, aptarnaujamas jūsų CDN, bus daug efektyvesnis naršyklei Kalbant apie pagrindinio žiniatinklio gyvybingumo metriką.

Kodėl naršyklė talpykloje neįtraukia duomenų URI?

HTTP talpykla veikia pagal URL. Duomenų URI yra dokumento, kuriame jis yra, dalis, todėl juo pasikrauna. Išorinė piktograma icon.png, atvirkščiai, yra talpykloje kartą ir visiems laikams ir pakartotinai naudojamas visuose puslapiuose, kuriuose jis nurodomas. Tai yra pagrindinis Štai kodėl duomenų URI išlieka nišiniu įrankiu, o ne bendruoju pakaitalu.

Užklausos pavyzdys

curl -X POST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute \
  -F "file=@/path/to/file"

Įvesties schema

Laukas Tipas Privalomas Numatytasis
file file

šis įrankis tikisi failo - naudokite Content-Type multipart/form-data vietoj application/json

Galiniai taškai

  • GET https://cdrn.fr/api/v1/tools - išvardija visus galimus įrankius
  • GET https://cdrn.fr/api/v1/tools/base64-image-encoder - gauna šio įrankio schemą
  • POST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute - vykdo šį įrankį su JSON payload