Konvertera JPG till Base64

Koda JPG- och JPEG-bilder som Base64. Behåll originalfilen byte för byte, eller koda om den med lägre kvalitet och mindre bredd så att strängen blir kort.

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

Så använder du verktyget

  1. Släpp en .jpg- eller .jpeg-fil på släppytan, klicka för att välja en fil eller klistra in en bild.
  2. Vill du behålla filen exakt som den är låter du Behåll original vara valt. Vill du krympa den väljer du JPEG eller WebP under Konvertera till och sänker Kvalitet.
  3. Ange en Maxbredd om fotot är större än det kommer att visas.
  4. Kopiera det resultat du behöver, till exempel img-taggen för en webbsida eller rå Base64 för ett API, eller ladda ned det som en fil.

JPEG i korthet

JPEG är standardformatet för fotografier. Det använder förstörande komprimering, som tar bort detaljer som ögat knappt märker, och har ingen transparens. Filerna slutar på .jpg, .jpeg eller ibland .jfif, men MIME-typen är alltid image/jpeg; image/jpg är ingen registrerad typ, även om många webbläsare accepterar den. En JPEG-data URI börjar med data:image/jpeg;base64,/9j/, den kodade markören för bildens början (start-of-image).

Krymp fotot före kodningen

Det är för foton som Base64 kostar mest: en JPEG på 200 KB blir ungefär 270 KB text. Två inställningar gör störst skillnad:

  • Maxbredd. Halverad bredd ger en fjärdedel så många pixlar. Ett mobilfoto som är 4000 pixlar brett behövs sällan i den storleken.
  • Kvalitet. Värden runt 70 till 80 % ser oftast likadana ut som originalet på skärmen och är mycket mindre. Mycket låga värden ger synliga blockartefakter.

Konvertering till WebP med liknande kvalitet ger ofta en ännu mindre fil. Håll koll på den kodade storleken som visas för varje inställning och behåll det minsta resultatet som fortfarande ser bra ut.

EXIF-metadata

Foton från kameror och mobiler innehåller EXIF-metadata: kameramodell, datum och tid och ibland GPS-koordinater. Utan konvertering innehåller Base64-resultatet de ursprungliga bytena, inklusive metadata, och alla som avkodar det kan läsa dem. Det är precis vad du vill när den exakta filen spelar roll, till exempel när ett API kontrollerar en hash eller läser av när bilden togs.

Vid konvertering kodas pixlarna om i webbläsaren, och EXIF-data följer inte med. Resultatet blir mindre och avslöjar inte längre var fotot togs.

När en JPEG-data URI är värd det

Bra användningsområden är små suddiga platshållare (en bild som är 20 till 40 pixlar bred och bäddas in medan hela fotot läses in fördröjt), miniatyrer i JSON-svar och HTML-exporter i en enda fil. Stora toppbilder och gallerier hör hemma i separata filer som webbläsaren kan cacha.

# Python
import base64
with open('photo.jpg', 'rb') as f:
    uri = 'data:image/jpeg;base64,' + base64.b64encode(f.read()).decode('ascii')

Vanliga frågor

Är JPG samma sak som JPEG?

Ja. Det kortare filtillägget .jpg kommer från system som bara tillät tre tecken. Båda är samma format med MIME-typen image/jpeg.

Försämrar Base64-kodning kvaliteten på JPEG-bilder?

Nej. Base64 är en förlustfri representation av filens byte. Kvaliteten ändras bara om du väljer en konvertering, som kodar om bilden med den kvalitet du anger.

Kan en JPEG-data URI ha transparent bakgrund?
Nej, JPEG har ingen alfakanal. Använd PNG eller WebP om du behöver transparens.
Innehåller Base64-strängen platsen där mitt foto togs?

Det kan den göra. Om den ursprungliga JPEG-filen har GPS-data i sin EXIF-metadata och du kodar den oförändrad finns platsen i strängen. När du konverterar bilden tas EXIF-metadata bort.