Sådan koder du et billede som Base64
Base64 er en måde at repræsentere binære data som almindelig tekst. Et billede består i sin filform af bytes, altså værdier, som ikke nødvendigvis kan vises eller overføres sikkert i alle tekstbaserede sammenhænge. Base64 omsætter disse bytes til tegn fra et begrænset alfabet. Kodningen ændrer ikke selve billedindholdet eller filformatet; den giver blot dataene en tekstlig repræsentation.
Hvad betyder Base64 for et billede?
Navnet henviser til et alfabet med 64 mulige tegn. Kodningen behandler data i grupper på tre bytes, svarende til 24 bit. Hver gruppe opdeles derefter i fire værdier på seks bit. De fire værdier slås op i Base64-alfabetet og bliver til fire teksttegn. Hvis den sidste gruppe indeholder færre end tre bytes, bruges fyldtegn, så tekstens længde passer til formatet.
Et billede kodet som Base64 er derfor ikke en beskrivelse af motivet og heller ikke en ny billedtype. Det er en tekststreng, der indeholder en kodet udgave af filens bytes. Strengen fylder typisk mere end de oprindelige binære data, fordi hver gruppe på tre bytes bliver til fire tegn. Ved brug sammen med data-URL-formatet kan en indledende del desuden angive medietypen, eksempelvis at indholdet er et billede i et bestemt format. Denne indledning er adskilt fra selve Base64-dataene.
Sådan foregår kodningen trin for trin
Find billedfilens bytes. Først læses filen som binære data. Det er vigtigt ikke at behandle den som almindelig tekst, da billedets byteværdier skal bevares præcist.
Opdel dataene i grupper. Læs bytes i rækkefølge, tre ad gangen. Hver byte har otte bit, så en fuld gruppe indeholder 24 bit.
Del hver gruppe op. Opdel de 24 bit i fire sektioner med seks bit. Hver sektion kan repræsenteres af én værdi i Base64-alfabetet.
Slå værdierne op. Find det tilsvarende tegn for hver seksbitværdi i alfabetet. Fortsæt i samme rækkefølge gennem hele filen.
Håndter en ufuldstændig gruppe. Hvis filens længde ikke går op i tre bytes, udfyldes den sidste kodningsgruppe med lighedstegn efter Base64-reglerne. Tegnene markerer fyld, ikke ekstra billedindhold.
Tilføj eventuelt formatoplysninger. Når strengen skal indgå i en data-URL, angives medietypen og at indholdet er Base64-kodet før selve dataene. Den præcise medietype afhænger af billedfilens format.
Sådan genskabes billedet
Afkodning udføres i omvendt rækkefølge. Fjern først en eventuel data-URL-indledning, og behold kun Base64-delen. Læs derefter tegnene i grupper på fire, find hver værdi i alfabetet, og saml de fire seksbitværdier til 24 bit. Del resultatet tilbage i bytes, og udelad de bit, som fyldtegnene angiver. De genskabte bytes skal gemmes som binære data med et passende billedformat. Hvis enkelte tegn ændres eller udelades, kan resultatet blive beskadiget eller ikke kunne læses.
Hvor Base64-billeder bruges
Base64 forekommer blandt andet, når billeddata skal indlejres i tekstbaserede dokumenter eller sendes gennem systemer, der håndterer tekst lettere end rå binære data. Det kan samle data og reference i samme dokument, men gør samtidig teksten længere og mindre overskuelig. Ved almindelig lagring og overførsel er den oprindelige billedfil ofte mere praktisk. Base64 er især nyttigt at forstå, når en lang tekststreng viser sig at indeholde billeddata frem for læsbar tekst.