Hoe je de bestandsgrootte van een afbeelding verkleint
Het uploadformulier wil maximaal 2 MB en mijn foto is 8 MB. Wat moet ik nu precies aanpassen?
Drie knoppen, en één ervan is dominant
Elke beeldcompressor draait aan een combinatie van drie knoppen: hoeveel pixels de afbeelding heeft, hoeveel detail de encoder mag weggooien, en welk formaat hij wegschrijft. Mensen grijpen als eerste naar de kwaliteitsschuifregelaar, omdat elke tool die als eerste toont. Dat is meestal de verkeerde plek om te beginnen.
De afmetingen zijn dominant, want de bestandsgrootte schaalt ruwweg mee met het aantal pixels en het aantal pixels schaalt met het kwadraat van de lineaire maat. Breedte en hoogte halveren laat een kwart van de pixels over. Niets wat je met een kwaliteitsschuifregelaar doet is zo doorslaggevend, en niets anders kost zo weinig aan waargenomen kwaliteit – mits het resultaat nog altijd groter is dan het kader waarin het wordt weergegeven.
Reken uit hoeveel pixels je echt nodig hebt
Een moderne telefooncamera maakt afbeeldingen van rond de 4000 pixels breed. Een schermvullende foto op een laptop wordt weergegeven op zo'n 1500 tot 2000 pixels breed, en een foto in een artikel vaak op 800. Stuur je 4000 pixels naar een kader dat er 800 toont, dan gooit de software van de kijker ongeveer 96 procent van de pixels weg nadat ze zijn gedownload.
| Langste zijde | Pixels bij benadering | Aandeel van het origineel van 4000 px |
|---|---|---|
| 4000 px | 10,7 miljoen | 100% |
| 2560 px | 4,4 miljoen | 41% |
| 1920 px | 2,5 miljoen | 23% |
| 1280 px | 1,1 miljoen | 10% |
| 800 px | 0,4 miljoen | 4% |
Die percentages zijn rekenwerk, geen meting aan een bepaald bestand – een gecomprimeerd bestand krimpt niet exact evenredig met het aantal pixels. Toch zijn ze het eerste waar je naar moet kijken, want ze laten zien hoeveel ruimte het verkleinen de encoder geeft voordat die detail moet gaan weggooien.
Wat de kwaliteitsschuifregelaar doet
In een JPEG-encoder schaalt het kwaliteitsgetal een tabel met delers die worden toegepast op de frequentiecoëfficiënten van elk blok van 8×8. Lagere kwaliteit betekent grover delen, wat betekent dat meer coëfficiënten naar nul worden afgerond, wat minder bits betekent. De zichtbare prijs verschijnt eerst rond harde randen en in vlakke verlopen: ringing naast tekst en banding in luchten.
De schaal is niet lineair en niet vergelijkbaar tussen formaten. Kwaliteit 80 in een JPEG-encoder, een WebP-encoder en een AVIF-encoder zijn drie ongerelateerde getallen die toevallig hetzelfde bereik delen. Beoordeel het resultaat door ernaar te kijken op ware grootte, niet door het getal te vertrouwen.
Waarom een doelgrootte een zoektocht is en geen instelling
Geen enkele encoder accepteert “maak hier 500 KB van” als opdracht. Hij accepteert een kwaliteitsinstelling en levert de grootte op die die instelling voor die ene afbeelding oplevert. Een tool die je een doelgrootte aanbiedt, voert dus een zoektocht uit: coderen, meten, de kwaliteit bijstellen, opnieuw coderen, en stoppen zodra het resultaat onder het budget zit of de kwaliteitsbodem is bereikt.
Daarom is een doelgrootte altijd een inspanningsverplichting. Een gedetailleerde, ruisige foto met hoge resolutie past soms bij geen enkele kwaliteit die een mens acceptabel vindt binnen een krap budget, en het eerlijke antwoord is stoppen bij de bodem en vertellen waar dat was, in plaats van doorgaan tot het beeld naar de knoppen is. De doelgroottetools van FileSlimmer verkleinen eerst de afmetingen, versmallen daarna de kwaliteit tussen twee grenzen en melden op welke instelling ze zijn geëindigd.
Hoe je een foto onder 1 MB krijgt
Begin met het verkleinen van een telefoonfoto naar de grootste afmetingen die de bestemming nodig heeft. Voor e-mail, formulieren en gewone webpagina's ligt dat vaak ver onder het camera-origineel. Codeer daarna een verse JPEG of WebP op een hoge maar niet maximale kwaliteit, meet het resultaat en verlaag de kwaliteit alleen geleidelijk als het bestand nog boven 1 MB zit.
Kwaliteit alleen bepaalt niet of een resultaat onder 1 MB uitkomt, want gedetailleerde afbeeldingen hebben meer data nodig dan eenvoudige. Haalt de eerste poging de limiet niet, verklein dan de afmetingen voordat je de kwaliteit verder omlaag dwingt. Dat levert normaal gesproken een natuurlijker ogend beeld op dan elke pixel behouden en er sterke blok- of ringing-artefacten bij nemen.
Dingen die niet helpen
- Het bestand in een ZIP stoppen. Gecomprimeerde beeldformaten hebben vrijwel geen redundantie meer over die een algemene compressor kan vinden; het archief is meestal even groot als het origineel, op een afrondingsfout na.
- De extensie hernoemen. De bytes veranderen niet, en software die de werkelijke bestandssignatuur leest, raakt er alleen maar door in de war.
- Een JPEG opnieuw opslaan op dezelfde kwaliteit. Dat is een tweede verliesgevende ronde: het bestand wordt niet noemenswaardig kleiner en het beeld wordt iets slechter.
- Metadata uit een foto verwijderen, als omvang je enige doel is. Een paar kilobyte EXIF tegenover enkele megabytes aan pixels is ruis. Verwijder het om privacyredenen, die reëel zijn, niet vanwege de omvang.
Een werkwijze die je er meestal brengt
- Bepaal het grootste formaat waarop de afbeelding ooit wordt weergegeven, en schaal de langste zijde daarnaartoe.
- Kies het formaat dat bij de inhoud past: een verliesgevend formaat voor foto's, een verliesvrij formaat voor schermafbeeldingen en vlakke graphics.
- Begin op een hoge maar niet maximale kwaliteit en ga stap voor stap omlaag tot je de schade ziet, en dan één stap terug omhoog.
- Bekijk het resultaat op ware grootte, op het soort scherm waarvoor het bedoeld is.
- Is het nog steeds te groot, ga dan terug naar de eerste stap. Er zit vrijwel altijd meer ruimte in de afmetingen dan in de kwaliteit.
Waar dit ophoudt te werken
Sommige afbeeldingen verzetten zich tegen dit alles. Een gescand document vol fijne tekst heeft zijn pixels nodig om leesbaar te blijven, dus verkleinen doet meteen pijn en kwaliteitsverlaging levert precies de artefacten op die tekst moeilijk leesbaar maken. Een schermafbeelding van een spreadsheet heeft hetzelfde probleem. Voor die gevallen is het juiste antwoord vaak een ander formaat – verliesvrij, of een PDF – en niet een lager aantal kilobytes.
En als een portaal je bestand weigert, controleer dan of de limiet op de bestandsgrootte zit of op de pixelafmetingen. Dat zijn verschillende limieten, en een bestand dat de ene haalt, kan alsnog stuklopen op de andere.
Tools hiervoor
Bronnen
- ITU-T T.81 — quantisation and the JPEG quality scale
- MDN — Image file type and format guide
- MDN — Responsive images and choosing a display width