> base64 | decode | PNG <

// Afkod Base64-strenge og data-URI'er tilbage til PNG-billeder — alfa bevares, øjeblikkelig forhåndsvisning, download med ét klik

0 tegn
🖼️

Afkodet PNG vises her

[LOSSLESS]

Bit-perfekt

Det afkodede PNG er byte-identisk med originalen — alfa, palet og farveprofil overlever round-trip uskadt.

[SECURE]

Lokal afkodning

Base64-nyttelasten afkodes i din browser med atob(). Ingen serverupload, ingen logning af dine PNG-bytes.

[INSTANT]

Live forhåndsvisning

Se det afkodede billede, dets dimensioner og omtrentlige filstørrelse øjeblikkeligt, før du downloader.

// OM BASE64 TIL PNG

Hvad dette værktøj accepterer

  • >Data-URI: data:image/png;base64,iVBORw0KGgo…
  • >Rå PNG-Base64-nyttelast (begynder med iVBORw0KGgo)
  • >Base64 med indlejrede mellemrum / linjeskift
  • >Standard RFC 4648-alfabet (+/, valgfri =-padding)
  • >URL-sikker Base64 (-_) — normaliseres automatisk ved afkodning
  • >Unicode-bevidst indsætning — BOM'er fjernes

Almindelige anvendelsestilfælde

  • >Gemme et skærmbillede fra en DOM-inspektørs data-URI
  • >Udtrække et logo fra en data-uri CSS-baggrund
  • >Gendanne et billede fra et JSON-API-svar
  • >Gendanne et billede fra en TEXT-kolonne i en database
  • >Gendanne et PNG fra en e-mail-MIME-del
  • >Inspicere et ikon indlejret i en inline-SVG
  • >Fejlfinde et ødelagt <img src="data:image/png;base64,…">-tag

Sådan fungerer Base64 → PNG-afkodning

Decoderen fjerner ethvert data-URI-præfiks, normaliserer mellemrum og URL-sikre tegn og kalder derefter atob() for at konvertere hver 4-tegns gruppe tilbage til 3 binære bytes. Byte-arrayet pakkes i en Blob med MIME-typen image/png, får en object-URL og gengives i et <img>-element. Da Base64 er bijektiv med binær, er outputtet bit-identisk med det originale PNG — en SHA-256 af den afkodede fil matcher originalen.

Eksempel på PNG-data-URI:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==

Ydeevne og kompatibilitet

  • >Afkodning er O(n) i nyttelastens længde — håndterer 100 MB+ uden problemer
  • >Bruger browserens native atob() — ingen tung JS-shim
  • >Understøtter multi-frame APNG, når fremviseren understøtter det
  • >Virker i alle moderne browsere (Chrome, Firefox, Safari, Edge)
  • >Mobilvenlig forhåndsvisning med knib-til-zoom
  • >Download bruger en Blob-URL — ingen mellemliggende server-round-trip

// SÅDAN AFKODER DU BASE64 TIL PNG

📋

Trin 1: Indsæt

Indsæt Base64-strengen eller den fulde data-URI i inputfeltet

🔍

Trin 2: Afkod

Klik på [DECODE] — PNG'et gengives øjeblikkeligt i forhåndsvisningen

📊

Trin 3: Inspicér

Tjek dimensioner, filstørrelse og alfakanal, før du gemmer

💾

Trin 4: Download

Klik på [DOWNLOAD .png] for at gemme et bit-identisk PNG på disken

// KODEEKSEMPLER — BASE64 TIL PNG

JavaScript (Browser)

// Decode Base64 → PNG Blob → download link
const b64 = 'iVBORw0KGgoAAAANSUhEUg...';
const bin = atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; i++) arr[i] = bin.charCodeAt(i);
const blob = new Blob([arr], { type: 'image/png' });
const url = URL.createObjectURL(blob);
window.open(url);

Afkod en rå Base64-nyttelast til en Blob og åbn den. For en fuld data-URI accepterer <img>-tagget den direkte.

Node.js

const fs = require('fs');
const b64 = 'iVBORw0KGgoAAAANSUhEUg...';
fs.writeFileSync('out.png', Buffer.from(b64, 'base64'));

Énlinjer med Nodes indbyggede Buffer til at afkode Base64 og skrive en PNG-fil.

Python

import base64
with open('out.png', 'wb') as f:
    f.write(base64.b64decode('iVBORw0KGgoAAAANSUhEUg...'))

Kun standardbiblioteket — afkod Base64-tekst tilbage til PNG-bytes.

PHP

<?php
file_put_contents('out.png', base64_decode('iVBORw0KGgoAAAANSUhEUg...'));

Énlinjer med det indbyggede base64_decode() og file_put_contents().

Shell (macOS / Linux)

echo 'iVBORw0KGgoAAAANSUhEUg...' | base64 -d > out.png

POSIX base64 -d / -D læser tekst på stdin og skriver det afkodede PNG på stdout.

// FAQ — BASE64 TIL PNG

Q: Hvad er Base64-til-PNG-afkodning?

A: Det vender et Base64-kodet PNG tilbage til dets oprindelige binære form. Strengen, du indsætter, er 4 ASCII-tegn pr. 3 binære bytes; decoderen læser 4 tegn ad gangen, anvender RFC 4648-alfabetopslaget og skriver 3 bytes pr. gruppe, indtil strengen er opbrugt. Det resulterende byte-array er en komplet, gyldig PNG-fil, som du kan forhåndsvise, gemme eller sende hvor som helst, et normalt PNG accepteres.

Q: Hvordan ved jeg, at Base64-strengen virkelig er et PNG?

A: De første 8 bytes i hvert PNG er den magiske signatur 89 50 4E 47 0D 0A 1A 0A. Base64-kodet begynder disse 8 bytes altid med iVBORw0KGgo. Derfor er enhver Base64-streng, der begynder med iVBORw0KGgo, et PNG. Andre formater har forskellige præfikser: /9j/ er JPEG, R0lGOD er GIF, UklGR er WebP. Vores decoder registrerer automatisk PNG'er ud fra dette magiske præfiks og falder tilbage på MIME-typen i data-URI'en, hvis den findes.

Q: Kan jeg indsætte en data-URI eller kun rå Base64?

A: Begge dele. Hvis din streng begynder med data:image/png;base64,, fjerner decoderen præfikset automatisk. Hvis du kun indsætter nyttelastdelen, udleder vi PNG-MIME-typen fra de magiske bytes. Mellemrum, linjeskift, vognreturer og tabulatorer normaliseres før afkodning, så du kan indsætte et pænt formateret JSON-svar uden at ødelægge noget.

Q: Det afkodede PNG er ødelagt — hvorfor?

A: Almindelige årsager:
Afkortet streng — Base64 blev skåret af et sted (f.eks. af en linjegrænse i din kopikilde). En komplet PNG-Base64 ender med RU5ErkJggg== (IEND-chunken); mangler den, er filen ufuldstændig.
URL-sikkert alfabet — hvis strengen bruger -_ i stedet for +/ (base64url), normaliserer vores værktøj det; andre decodere afviser det måske.
Dobbeltkodet — PNG'et blev Base64-kodet to gange. Afkod det igen.
Ikke et PNG — nyttelasten er faktisk JPEG eller WebP. Brug vores generiske Base64 → Billede-decoder, som registrerer ethvert format automatisk.

Q: Mister afkodning tilbage til PNG kvalitet eller gennemsigtighed?

A: Nej. Base64 er en bit-for-bit reversibel transformation. Det afkodede PNG er byte-identisk med originalen: alfakanal, palet (PLTE), gennemsigtighed (tRNS), farveprofil (iCCP/sRGB), gamma (gAMA) og fysiske pixeldimensioner (pHYs) overlever alle. En SHA-256-hash af den afkodede fil matcher hashen af originalen. Hvis du ser nogen forskel, skete ændringen før kodning, ikke under Base64-round-trippet.

Q: Kan jeg afkode Base64 til PNG i terminalen?

A: Ja. På macOS og Linux:
echo 'iVBORw0KGgo…' | base64 -d > out.png
(macOS bruger -D i ældre versioner.)
På Windows PowerShell:
[IO.File]::WriteAllBytes('out.png', [Convert]::FromBase64String('iVBORw0KGgo…'))
Hvis strengen er en fuld data-URI, fjern først præfikset data:image/png;base64, (de fleste shells accepterer sed 's|^data:.*base64,||').

Q: Hvor stort kan Base64-PNG-inputtet være?

A: Vi afkoder i browseren, så grænsen er din enheds hukommelse — komfortabelt 100 MB+ på desktop. Et 100 MB afkodet PNG ville kræve ~135 MB Base64-tekst, som de fleste browsere indsætter uden indvendinger. Hvis du arbejder med meget store videnskabelige eller medicinske PNG'er, så overvej server-side-afkodning i stedet, fordi browserens atob()-ydeevne forringes nær hukommelsesloftet.

Q: Virker denne decoder offline?

A: Ja. Al afkodning bruger de native API'er atob() + Uint8Array + Blob, som er indbygget i enhver moderne browser. Når siden er indlæst én gang, kan du afbryde netværket og fortsætte med at afkode. Ingen eksterne tjenester, ingen server-round-trip, ingen analytics på din billednyttelast.

Q: Hvad er forskellen mellem et Base64-PNG og en normal PNG-fil?

A: De indeholder præcis de samme bytes. En normal .png-fil er den rå binær; en Base64-PNG-streng er den samme binær omskrevet i 64-tegns ASCII-alfabetet. Base64-formen er 33 % større, men sikker at lægge ind i HTML-attributter, JSON-strenge, CSS-url()-er og e-mails. Du kan ikke lægge rå PNG-bytes ind i HTML — de indeholder null-bytes og high-bit-tegn, der ødelægger tekstparsere. Base64 er løsningen.

Q: Indlæses et Base64-PNG hurtigere end en separat .png-fil?

A: Kun for små billeder. Base64 sparer én HTTP-round-trip, som kan være 50–100 ms på en frisk forbindelse — nyttigt for kritiske UI-ikoner under 4 KB. For alt større vinder en separat .png-fil serveret med langtidsgyldige cache-headers næsten altid, fordi (a) gzip komprimerer Base64-tekst dårligt, (b) data-URI'er ikke kan caches uafhængigt, og (c) de blokerer HTML-parsing. Brug Base64 til above-the-fold-mikroaktiver, ikke hero-billeder.

Q: Kan jeg afkode Base64 til PNG uden at uploade dataene nogen steder?

A: Ja — dette værktøj kører 100 % på klientsiden. Din Base64-streng afkodes i JavaScript på din enhed, pakkes lokalt i en Blob og vises via URL.createObjectURL(). Intet uploades. Du kan verificere det ved at åbne browserens dev-tools-netværksfane, mens du afkoder — ingen anmodninger sendes ud. At køre hele forløbet offline (flytilstand) virker også efter den første sideindlæsning.

Q: Hvordan afkoder jeg Base64 til PNG i produktionskode?

A: I Node.js: fs.writeFileSync('out.png', Buffer.from(b64, 'base64')). I Python: open('out.png','wb').write(base64.b64decode(b64)). I Go: b, _ := base64.StdEncoding.DecodeString(b64); os.WriteFile("out.png", b, 0644). I Java: Files.write(Path.of("out.png"), Base64.getDecoder().decode(b64)). I Rust: std::fs::write("out.png", base64::decode(b64)?)?. I PHP: file_put_contents('out.png', base64_decode($b64)). Hver runtimes standardbibliotek leveres med en Base64-decoder — du har sjældent brug for en tredjepartsafhængighed.

Q: Base64 til PNG vs. Base64 til JPG — hvilken decoder skal jeg bruge?

A: Brug Base64 → PNG, når Base64-strengen begynder med iVBORw0KGgo (eller data-URI'en siger data:image/png;base64,). Brug Base64 → JPG, når strengen begynder med /9j/4AAQ eller /9j/2wC. Hvis du er i tvivl, så brug vores generiske Base64 → Billede-decoder, som undersøger de magiske bytes og vælger det rigtige format automatisk. Tving aldrig et format, der ikke matcher nyttelasten — den afkodede fil vil være gyldige bytes, men ulæselig.

// OTHER LANGUAGES