Konverter Base64 til PNG

Gjør Base64-tekst om til en ekte PNG-fil. Lim inn en rå streng eller en data:image/png;base64-URI, forhåndsvis den med gjennomsiktigheten intakt, og lagre den som den er, eller konverter andre bildeformater til PNG.

Kjører helt i nettleseren din. Ingenting lastes opp.

Slik bruker du verktøyet

  1. Lim inn Base64-strengen eller hele data:image/png;base64-URI-en.
  2. Sjekk forhåndsvisningen. Gjennomsiktige områder vises over et sjakkbrettmønster.
  3. La Last ned som stå på PNG. Hvis dataene er JPEG, WebP eller et annet format, konverteres de til PNG i nettleseren din.
  4. Last ned .png-filen.

Hvor Base64-PNG-er kommer fra

PNG er det formatet du oftest møter som Base64. Kaller du canvas.toDataURL() uten argumenter, får du tilbake en PNG-data URI. Verktøy for nettleserautomatisering leverer skjermbilder som Base64-PNG, for eksempel page.screenshot({ encoding: 'base64' }) i Puppeteer eller get_screenshot_as_base64() i Selenium. Diagramverktøy, QR-kodegeneratorer og API-er for bildegenerering returnerer ofte bildet som et Base64-felt i JSON.

En PNG-streng er lett å kjenne igjen: den begynner alltid med iVBORw0KGgo, kodingen av PNG-signaturen på 8 byte som starter med 89 50 4E 47. Deretter følger AAAANSUhEUg, som er starten på IHDR-blokken med bredde og høyde.

Strenger som er kopiert ut av JSON, bør sjekkes først. PHPs json_encode setter for eksempel en omvendt skråstrek foran hver skråstrek som standard, så en PNG fra et PHP-API kan komme med \/-sekvenser. Erstatt dem med / og fjern anførselstegnene rundt før du limer inn.

Hvorfor lagre som PNG

PNG komprimerer uten å miste detaljer og lagrer en full alfakanal, så myke skygger og kantutjevnede kanter forblir intakte. Det gjør formatet til det naturlige valget for skjermbilder, grensesnittelementer, diagrammer og alt som inneholder tekst. For fotografier gir JPG eller WebP mye mindre filer.

Konverterer du en JPEG eller WebP til PNG, beholdes nøyaktig det som vises på skjermen, men detaljer som tapsbasert komprimering allerede har fjernet, kommer ikke tilbake, og PNG-filen blir vanligvis større enn kilden.

Lagre en Base64-PNG med kode

# Python
import base64
with open('screenshot.png', 'wb') as f:
    f.write(base64.b64decode(b64_string))

// Nettleser: data URI til Blob, uten manuell dekoding
const blob = await (await fetch(dataUri)).blob();
const url = URL.createObjectURL(blob);

Trenger du motsatt vei? PNG til Base64 koder en fil som en streng eller data URI.

Ofte stilte spørsmål

Hvordan ser jeg om en Base64-streng er en PNG?
PNG-data begynner alltid med iVBORw0KGgo. Verktøyet leser også signaturbytene direkte, så det oppgir det faktiske formatet selv om data URI-en sier noe annet.
Blir kvaliteten dårligere ved konvertering til PNG?

Nei. PNG er tapsfritt, så pikslene lagres nøyaktig slik nettleseren dekodet dem. Det eneste tapet ville være et som allerede har skjedd i kildefilen.

Beholdes gjennomsiktigheten?

Ja. PNG-utdata beholder hele alfakanalen. JPEG-utdata fyller gjennomsiktige områder med hvitt, og GIF-utdata gjør hver piksel enten helt gjennomsiktig eller helt ugjennomsiktig.

PNG-data URI-en min viser et ødelagt bilde. Hva er galt?
Som regel er strengen avkortet. Regnearkceller (Excel stopper ved 32 767 tegn), logglinjer og databasekolonner kutter ofte lange verdier. Fjern også anførselstegn rundt strengen og JSON-escaping som \/ før du limer inn.