Konvertér Base64 til PNG

Lav Base64-tekst om til en rigtig PNG-fil. Indsæt en rå streng eller en data:image/png;base64-URI, se den med gennemsigtigheden intakt, og gem den, som den er, eller konvertér andre billedformater til PNG.

Kører udelukkende i din browser. Intet bliver uploadet.

Sådan bruger du værktøjet

  1. Indsæt Base64-strengen eller hele data:image/png;base64-URI'en.
  2. Tjek forhåndsvisningen. Gennemsigtige områder vises over et skakternet mønster.
  3. Lad Download som stå på PNG. Hvis dataene er JPEG, WebP eller et andet format, konverteres de til PNG i din browser.
  4. Download .png-filen.

Hvor Base64-PNG'er kommer fra

PNG er det format, du oftest møder som Base64. Kalder du canvas.toDataURL() uden argumenter, returnerer metoden en PNG-data URI. Værktøjer til browserautomatisering afleverer skærmbilleder som Base64-PNG, for eksempel page.screenshot({ encoding: 'base64' }) i Puppeteer eller get_screenshot_as_base64() i Selenium. Diagramværktøjer, QR-kodegeneratorer og API'er til billedgenerering returnerer ofte billedet som et Base64-felt i JSON.

En PNG-streng er let at genkende: Den begynder altid med iVBORw0KGgo, som er kodningen af PNG-signaturen på 8 bytes, der starter med 89 50 4E 47. Derefter følger AAAANSUhEUg, som er starten på IHDR-chunken med bredden og højden.

Strenge, der er kopieret ud af JSON, skal lige tjekkes først. PHP's json_encode escaper for eksempel skråstreger som standard, så en PNG fra et PHP-API kan komme med \/-sekvenser. Erstat dem med /, og fjern de omgivende anførselstegn, før du indsætter.

Hvorfor gemme som PNG

PNG komprimerer uden at miste detaljer og gemmer en fuld alfakanal, så bløde skygger og kantudjævnede kanter forbliver intakte. Det gør formatet til det naturlige valg til skærmbilleder, elementer i brugerflader, diagrammer og alt, der indeholder tekst. Til fotos giver JPG eller WebP langt mindre filer.

Når du konverterer en JPEG eller WebP til PNG, bevares præcis det, der ses på skærmen, men detaljer, som komprimeringen med tab allerede har fjernet, kommer ikke tilbage, og PNG-filen er som regel større end kilden.

Gem en Base64-PNG i kode

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

// Browser: data URI til Blob uden manuel afkodning
const blob = await (await fetch(dataUri)).blob();
const url = URL.createObjectURL(blob);

Skal du den modsatte vej? PNG til Base64 koder en fil som en streng eller data URI.

Ofte stillede spørgsmål

Hvordan kan jeg se, om en Base64-streng er en PNG?
PNG-data starter altid med iVBORw0KGgo. Værktøjet læser også signaturbytene direkte, så det angiver det reelle format, selv hvis data URI'en siger noget andet.
Mister billedet kvalitet ved konvertering til PNG?

Nej. PNG er tabsfrit, så pixelene gemmes præcis, som browseren afkodede dem. Det eneste tab ville være et, der allerede er sket i kildefilen.

Bevares gennemsigtigheden?

Ja. PNG-output bevarer hele alfakanalen. JPEG-output udfylder gennemsigtige områder med hvidt, og GIF-output gør hver pixel enten helt gennemsigtig eller helt uigennemsigtig.

Min PNG-data URI viser et ødelagt billede. Hvad er der galt?
Som regel er strengen blevet afkortet. Regnearksceller (Excel stopper ved 32.767 tegn), loglinjer og databasekolonner afkorter ofte lange værdier. Fjern også omgivende anførselstegn og JSON-escapes som \/, før du indsætter.