Base64 vaizdo dekoderis | Dekuodokite ir peržiūrėkite vaizdus internete
Nemokamas internetinis base64 vaizdo dekodavimo įrankis. Akimirksniu dekuodokite ir peržiūrėkite base64 eilutes kaip JPEG, PNG, GIF, WebP arba SVG vaizdus. Veikia su duomenų URL ir žaliu base64.
Base64 vaizdo dekoderis ir peržiūra
Įklijuokite base64 užkoduotą vaizdo eilutę ir dekuodokite ją, kad peržiūrėtumėte vaizdą.
Vaizdo peržiūra
Nėra vaizdo rodymui. Įklijuokite base64 eilutę, kad jį automatiškai dekuodotumėte.
Palaiko JPEG, PNG, GIF ir kitus įprastus vaizdo formatus.
Instrukcijos
1. Įklijuokite base64 užkoduotą vaizdo eilutę aukščiau esančiame teksto lauke.
2. Vaizdas bus automatiškai dekuoduotas renkant tekstą arba paspaudus 'Dekuoduoti vaizdą' mygtuką.
3. Dekuoduotas vaizdas pasirodys peržiūros srityje žemiau.
Pastaba: Eilutė turėtų prasidėti 'data:image/' geriausiems rezultatams, tačiau įrankis bandys dekuoduoti eilutes ir be šio prefikso.
Dokumentacija
Kas yra „base64“ vaizdų dekoderis?
„Base64“ vaizdų dekoderis – tai įrankis, kuris „base64“ koduotos tekstinės eilutės duomenis paverčia atgal į vaizdą. „Base64“ – tai būdas dvejetainius duomenis, pavyzdžiui, vaizdo failo baitus, užrašyti naudojant tik 64 paprastojo teksto simbolius (raides, skaitmenis, +, / ir užpildymui skirtą =). Naršyklės, el. laiškai ir daugelis API vaizdus taip saugo, kad vaizdas galėtų būti perduodamas paprastojo teksto viduje, o ne kaip atskiras failas. Dekoderis apverčia šį procesą: įklijavus eilutę, pasirodo pradinis vaizdas.
Duomenų URL formatas
Žiniatinklyje „base64“ vaizdas paprastai užrašomas kaip duomenų URL. Šablonas:
1data:[<media type>];base64,<data>
2Pavyzdžiui:
1data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
2Kiekviena dalis atlieka savo funkciją:
data:nurodo, kad tai duomenų URL, o ne įprastas žiniatinklio adresas.image/pngyra MIME tipas, nurodantis naršyklei, kokio tipo tai failas.;base64nurodo, kad po kablelio esantys duomenys užkoduoti „base64“.- Visa po kablelio esanti dalis yra pats koduotas vaizdas.
Kaip veikia dekoderis
Dekodavimas vyksta keturiais etapais.
- Įrankis patikrina, ar eilutė prasideda
data:. Duomenų URL, kuriame nurodytas ne vaizdo, o kitas medijos tipas, pavyzdžiui,data:text/plain, iš karto atmetamas, nes jo niekada nebūtų galima parodyti kaip vaizdo. - Iš eilutės pašalinami tarpai, tabuliavimo simboliai ir eilučių lūžiai, nes ilgos „base64“ eilutės kartais suskaidomos į kelias eilutes. Duomenys, kuriuose vietoj „base64“ naudojamas procentinis kodavimas, taip pat leidžiamas RFC 2397, perduodami nepakeisti.
- „Base64“ tekstas dekoduojamas atgal į neapdorotus baitus.
- Tada patikrinami pirmieji keli gauto rezultato baitai. Kiekvienas įprastas vaizdo formatas prasideda fiksuota baitų seka, vadinama parašu arba „magiškuoju skaičiumi“. PNG failai prasideda
89 50 4E 47, JPEG failai –FF D8 FFir taip toliau. Dekoderis palygina šiuos parašus ir priskiria vaizdui jų nurodomą tipą.
Baitai yra svarbesni už etiketę. Jei duomenų URL nurodyta data:image/png, bet baitai prasideda FF D8 FF, dekoderis atkuria URL kaip data:image/jpeg, todėl mygtuko „Kopijuoti vaizdo URL“ pateikiama eilutė niekada neteisingai neaprašo savo turinio.
Jei eilutėje nėra data: priešdėlio, dekoderis ją laiko neapdorotais „base64“ duomenimis, juos dekoduoja ir parašą nuskaito tokiu pačiu būdu. Jei baitai neatitinka jokio žinomo vaizdo parašo ir neatrodo kaip SVG tekstas, dekoderis praneša, kad eilutė, regis, nėra vaizdas. Jis formato neatspėja ir nenaudoja jokio numatytojo tipo.
SVG apdorojamas kitaip, nes tai tekstinis (XML), o ne dvejetainis formatas, todėl neturi fiksuoto baitų parašo. Dekoderis pirmuosiuose 1024 dekoduoto teksto baituose ieško žymos <svg, XML deklaracijos, pavyzdžiui, <?xml version="1.0"?>, po kurios eina ši žyma, arba SVG dokumento tipo deklaracijos, po kurios ji eina. Pačioje pradžioje esantis baitų tvarkos ženklas, kurį kai kurios redagavimo programos prideda prie UTF-8 failų, ignoruojamas. Kadangi SVG neįmanoma nustatyti pagal baitų parašą, duomenų URL, kuriame deklaruota image/svg+xml, išlaiko deklaruotą tipą.
„Base64“ vaizdo dydžio formulė
„Base64“ kas 3 dvejetainių duomenų baitus paverčia į 4 tekstinius simbolius. Kodavimo ilgio formulė:
1encoded_characters = 4 × ⌈original_bytes ÷ 3⌉
2Simboliai ⌈ ⌉ reiškia „apvalinti į didesnę pusę iki kito sveikojo skaičiaus“, nes „base64“ visada veikia 4 simbolių grupėmis ir likusiai grupei užpildyti naudoja = ženklus.
Didelių failų dydis padidėja maždaug 33 %, nes 4 ÷ 3 ≈ 1,33. Mažuose failuose procentinis padidėjimas gali būti didesnis, nes apvalinimas iki kitos 4 simbolių grupės yra reikšmingesnis, kai pradinių duomenų nedaug.
Išspręstas pavyzdys
Pirmiau pateiktas PNG pavyzdys dekoduojamas į 85 vaizdo duomenų baitus. Taikant formulę:
14 × ⌈85 ÷ 3⌉ = 4 × 29 = 116
2„Base64“ eilutę iš tiesų sudaro 116 simbolių, o tai sutampa. Tai yra 36 % padidėjimas, palyginti su pradiniais 85 baitais (116 ÷ 85 ≈ 1,36), šiek tiek didesnis nei 33 %, nes failas labai mažas.
Palaikomi vaizdo formatai
Dekoderis nuskaito dekoduotų duomenų baitų parašą ir nustato formatą. Jis atpažįsta šiuos tipus:
| Formatas | MIME tipas | Tikrinamas parašas |
|---|---|---|
| PNG | image/png | 89 50 4E 47 0D 0A 1A 0A |
| JPEG | image/jpeg | FF D8 FF |
| GIF | image/gif | GIF87a arba GIF89a |
| WebP | image/webp | RIFF, keturi ignoruojami baitai, tada WEBPVP |
| BMP | image/bmp | BM |
| ICO / CUR | image/x-icon | 00 00 01 00 arba 00 00 02 00 |
| SVG | image/svg+xml | Nėra parašo; nustatoma kaip tekstas su žyma <svg |
Kaip dekoduoti „base64“ vaizdą
- Nukopijuokite „base64“ eilutę su
data:image/...priešdėliu arba be jo iš HTML, CSS, API atsako ar el. laiško. - Įklijuokite ją į įvesties lauką.
- Vaizdas automatiškai dekoduojamas netrukus po to, kai nustojama rašyti, arba paspaudus dekodavimo mygtuką.
- Dekoduotas vaizdas pasirodo peržiūros srityje. Jo duomenų URL galima nukopijuoti mygtuku „Kopijuoti vaizdo URL“, o patį vaizdą galima išsaugoti peržiūroje spustelėjus jį dešiniuoju pelės mygtuku ir pasirinkus išsaugoti vaizdą, nes naršyklėje jis pateikiamas kaip įprastas vaizdo elementas.
Dažniausi „base64“ vaizdų naudojimo būdai
- Įterpimas į HTML, CSS ar „JavaScript“: įdėjus vaizdo duomenis tiesiai į kodą nereikia atskiros failo užklausos.
- El. laiškų šablonai: kai kurios el. pašto programos pagal numatytuosius nustatymus blokuoja išoriškai susietus vaizdus, tačiau įterptas „base64“ vaizdas vis tiek rodomas.
- Vieno failo HTML įrankiai: visas puslapis, įskaitant vaizdus, gali būti pateikiamas kaip vienas savarankiškas failas.
- API atsakai: vaizdas gali būti perduodamas JSON duomenyse, todėl jam nereikia atskiro galinio taško.
- CSS fonai ir piktogramos: mažos piktogramos kartais įrašomos tiesiai į stilių failą kaip duomenų URL.
„Base64“ vaizdų kompromisai
„Base64“ kodavimas patogus, tačiau turi trūkumų:
- Koduotas tekstas yra maždaug trečdaliu didesnis už pradinį failą.
- Naršyklės negali talpykloje saugoti įterpto vaizdo taip, kaip susieto failo, todėl jis atsisiunčiamas iš naujo kaskart įkeliant susijusį puslapį ar stilių failą.
- Prieš rodydama vaizdą naršyklė turi dekoduoti „base64“ tekstą, todėl reikia šiek tiek papildomų skaičiavimo išteklių.
- Dėl padidėjusio dydžio ir talpyklos praradimo „base64“ įterpimas tinka mažiems vaizdams, pavyzdžiui, piktogramoms ir paprastiems logotipams. Didesnes nuotraukas paprastai geriau pateikti kaip įprastus vaizdo failus.
Dažnai užduodami klausimai
Kas yra „base64“ vaizdų dekoderis?
Tai įrankis, kuris „base64“ koduotą tekstinę eilutę paverčia atgal į peržiūrai tinkamą vaizdą, pavyzdžiui, PNG, JPEG, GIF, WebP, BMP ar SVG failą.
Kaip dekoduoti „base64“ vaizdą?
Įklijuokite „base64“ eilutę su data:image/... priešdėliu arba be jo į dekoderį. Jis nuskaitys eilutę, ją dekoduos ir parodys gautą vaizdą.
Ar galima „base64“ eilutę dekoduoti be duomenų URL priešdėlio?
Taip. Dekoderis ją laiko neapdorotais „base64“ duomenimis, dekoduoja baitus ir pagal jų parašą nustato formatą, pavyzdžiui, PNG, JPEG, GIF, WebP, BMP ar ICO. SVG nustatomas dekoduotame tekste ieškant žymos <svg. Jei nė vienas iš šių formatų neatpažįstamas, dekoderis praneša, kad eilutė, regis, nėra vaizdas, užuot spėjęs formatą.
Kodėl nepavyksta dekoduoti mano „base64“ vaizdo?
Daugumą atvejų lemia trys priežastys. Eilutėje gali būti simbolių, nepriklausančių standartinei „base64“ abėcėlei, kurią sudaro A–Z, a–z, 0–9, +, / ir =; kai kuriuose žiniatinklio prieigos raktuose naudojamas „base64url“ variantas vietoj jų rašo - ir _, todėl jis nepriimamas. Eilutė galėjo būti nukirsta viduryje, todėl jos ilgis yra vienetu didesnis už ketverto kartotinį, o taip niekada nebūna tinkamoje „base64“ eilutėje. Arba baitai tiesiog gali būti nepalaikomo vaizdo formato. Vien tai, kad trūksta užpildymo = ženklų, nėra problema, o tarpai ir eilučių lūžiai prieš dekodavimą pašalinami.
Ar „base64“ kodavimas yra saugumo arba šifravimo forma?
Ne. „Base64“ tėra būdas baitams pateikti kaip tekstą; jis nieko neslepia. Bet kas per kelias sekundes gali dekoduoti „base64“ eilutę naudodamas nemokamą įrankį, todėl jis niekada neturėtų būti naudojamas privatiems vaizdams ar kitiems duomenims apsaugoti.
Kiek „base64“ eilutė didesnė už pradinį vaizdą?
Didesni failai padidėja maždaug trečdaliu, nes kas 3 pradinio failo baitus paverčiami į 4 tekstinius simbolius. 100 KB vaizdas užkodavus tampa maždaug 133 KB dydžio. Mažuose vaizduose procentinis padidėjimas gali būti šiek tiek didesnis dėl apvalinimo.
Istorija
„Base64“ atsirado iš kodavimo schemų, sukurtų 1970-aisiais ir 1980-aisiais dvejetainiams duomenims siųsti per pašto sistemas, kurios apdorojo tik paprastąjį tekstą; el. paštui jis buvo įtvirtintas RFC 989 (1987), o vėliau – RFC 1421. Vaizdų įterpimas į žiniatinklio puslapius tapo įmanomas, kai RFC 2397 (1998) apibrėžė data: URL schemą, o 2000-ųjų viduryje šis būdas paplito, kūrėjams ieškant galimybių sumažinti atskirų HTTP užklausų skaičių, ypač naudojant lėtą mobilųjį ryšį.