Zo gebruik je het
- Sleep een .jpg- of .jpeg-bestand naar het sleepvak, klik om er een te kiezen of plak een afbeelding.
- Wil je het bestand precies houden zoals het is, laat conversie dan uit. Wil je het verkleinen, kies dan bij Converteren naar JPEG of WebP en verlaag de Kwaliteit.
- Stel een Max. breedte in als de foto groter is dan hij wordt weergegeven.
- Kopieer de uitvoer die je nodig hebt, zoals de img-tag voor een pagina of kale Base64 voor een API, of download hem als bestand.
JPEG in het kort
JPEG is het standaardformaat voor foto's. Het gebruikt compressie met verlies, waarbij details die het oog nauwelijks opmerkt worden weggelaten, en het kent geen transparantie. Bestanden eindigen op .jpg, .jpeg of soms .jfif, maar het MIME-type is altijd image/jpeg; image/jpg is geen geregistreerd type, ook al accepteren veel browsers het. Een JPEG-data-URI begint met data:image/jpeg;base64,/9j/, de gecodeerde start-of-image-markering.
Een foto verkleinen vóór het coderen
Bij foto's doet Base64 de meeste pijn: een JPEG van 200 KB wordt ongeveer 270 KB tekst. Twee instellingen maken het grootste verschil:
- Max. breedte: halveer je de breedte, dan blijft er een kwart van het aantal pixels over. Een telefoonfoto van 4000 pixels breed is zelden op dat formaat nodig.
- Kwaliteit: waarden rond 70 tot 80% zien er op een scherm meestal hetzelfde uit als het origineel en zijn veel kleiner. Zeer lage waarden geven blokkerige artefacten.
Converteren naar WebP met een vergelijkbare kwaliteit levert vaak een nog kleiner bestand op. Let op de gecodeerde grootte die bij elke instelling wordt getoond en houd het kleinste resultaat dat er nog goed uitziet.
EXIF-metadata
Foto's van camera's en telefoons bevatten EXIF-metadata: cameramodel, datum en tijd, en soms gps-coördinaten. Zonder conversie bevat de Base64-uitvoer de originele bytes, inclusief metadata, en iedereen die de string decodeert, kan die lezen. Dat is precies wat je wilt als het exacte bestand ertoe doet, bijvoorbeeld wanneer een API een hash controleert of de opnamedatum uitleest.
Bij conversie worden de pixels in de browser opnieuw gecodeerd en worden EXIF-gegevens niet meegenomen. De uitvoer is kleiner en verraadt niet meer waar de foto is gemaakt.
Wanneer een JPEG-data-URI de moeite waard is
Goede toepassingen zijn kleine wazige placeholders (een afbeelding van 20 tot 40 pixels breed die inline staat terwijl de volledige foto lazy wordt geladen), miniaturen in JSON-antwoorden en HTML-exports in één bestand. Hero-afbeeldingen en galerijen horen in aparte bestanden die de browser kan cachen.
# Python
import base64
with open('photo.jpg', 'rb') as f:
uri = 'data:image/jpeg;base64,' + base64.b64encode(f.read()).decode('ascii')
Veelgestelde vragen
Is JPG hetzelfde als JPEG?
Ja. De kortere extensie .jpg stamt uit systemen die maar drie tekens toestonden. Beide zijn hetzelfde formaat met het MIME-type image/jpeg.
Verlaagt Base64-codering de kwaliteit van een JPEG?
Nee. Base64 is een verliesvrije weergave van de bytes van het bestand. De kwaliteit verandert alleen als je een conversie kiest; dan wordt de afbeelding opnieuw gecodeerd met de kwaliteit die je instelt.
Kan een JPEG-data-URI een transparante achtergrond hebben?
Staat de locatie van mijn foto in de Base64-string?
Dat kan. Als de originele JPEG gps-gegevens in de EXIF-metadata heeft en je hem ongewijzigd codeert, staat de locatie in de string. Converteren verwijdert de EXIF-metadata.