Konvertera PNG till Base64

Koda PNG-filer som Base64 med transparensen intakt. Släpp eller klistra in en PNG och kopiera den som data URI, img-tagg i HTML, CSS-bakgrund eller Markdown-bild.

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. Släpp en PNG på släppytan, klicka för att välja en fil eller klistra in en skärmbild från urklipp.
  2. Låt Behåll original vara valt för att koda de ursprungliga PNG-bytena, eller ange en Maxbredd för att krympa en stor bild.
  3. Jämför originalstorleken med den kodade storleken som visas för bilden.
  4. Kopiera eller ladda ned resultatet som data URI, rå Base64, img-tagg, CSS eller Markdown.

PNG och Base64

PNG (Portable Network Graphics, MIME-typ image/png) är ett förlustfritt rasterformat med full alfakanal, vilket gör det till det vanliga valet för ikoner, logotyper, diagram och skärmbilder. Varje PNG-fil börjar med samma signatur på 8 byte, så varje PNG-data URI börjar likadant: data:image/png;base64,iVBORw0KGgo....

Base64 rör inte pixlarna. När strängen avkodas får du tillbaka en fil som är identisk byte för byte, med samma färger och samma transparenta områden.

Bra användningsområden för PNG som data URI

  • Små ikoner och logotyper i gränssnitt som behöver transparent bakgrund.
  • Skärmbilder i fristående HTML-rapporter, felrapporter eller exporterad dokumentation.
  • Diagram och QR-koder som genereras på en server och returneras i ett JSON-svar.
  • Bilder som skapas med canvas.toDataURL(), som redan som standard ger data URI:er i PNG-format.

Foton är en annan sak. PNG lagrar dem förlustfritt och filerna blir stora; JPEG eller WebP ger en betydligt kortare sträng.

Gör PNG-filen mindre före kodningen

Varje byte du tar bort från PNG-filen sparar ungefär 1,33 tecken Base64. Kör först filen genom en optimerare som oxipng eller zopflipng (förlustfritt) eller pngquant (minskar färgpaletten). Kontrollera även pixelstorleken: en ikon som har exporterats i tre gånger visningsstorleken kan oftast skalas ned med inställningen Maxbredd.

Konvertering till WebP behåller transparensen och ger ofta en betydligt mindre fil. Konvertering till JPEG tar bort transparensen, så transparenta områden blir en enfärgad yta. Att koda om till PNG i webbläsaren optimerar inte komprimeringen, så resultatet kan bli större än ett väloptimerat original; jämför storlekarna innan du kopierar.

Så använder du resultatet

<img src="data:image/png;base64,iVBORw0KGgo..." width="24" height="24" alt="Settings">

.icon-settings {
  background: url("data:image/png;base64,iVBORw0KGgo...") no-repeat center / 24px 24px;
}

# Kommandorad: GNU coreutils / macOS
base64 -w 0 icon.png
base64 -i icon.png

Vanliga frågor

Behåller Base64 transparensen i PNG?

Ja. Base64 kodar filens byte oförändrade, så alfakanalen behålls. Transparensen försvinner bara om du konverterar bilden till JPEG.

Varför börjar alla PNG-strängar i Base64 med iVBORw0KGgo?

De tecknen är Base64-formen av PNG-filens signatur. Om en sträng som påstås vara en PNG börjar på något annat sätt är det ett annat format, eller så är den skadad.

Kan jag klistra in en skärmbild direkt?
Ja. Kopiera en skärmbild och klistra in den på sidan. Webbläsare lämnar oftast över inklistrade skärmbilder som PNG, så du får ett data:image/png-resultat.
Hur stor PNG bör jag bädda in som Base64?

En vanlig tumregel är några kilobyte, upp till ungefär 10 KB. Större bilder levereras hellre som separata filer som webbläsaren kan cacha och läsa in parallellt.