Discussies over formaten beginnen meestal bij de codec en werken naar buiten toe. Dat is omgekeerd. Het juiste formaat wordt bepaald door wat er in de afbeelding zit, en pas daarna door wat het ontvangende systeem accepteert.
Foto's: JPEG of WebP
Beelden met vloeiende overgangen — gezichten, landschappen, alles met verlopen en ruis — comprimeren goed met lossy codecs, omdat het oog kleine fouten in drukke gebieden nauwelijks opmerkt. JPEG is de veilige standaard, simpelweg omdat alles het accepteert. Lossy WebP haalt dezelfde waargenomen kwaliteit in merkbaar minder bytes, en wint dus zodra de bestemming het toestaat.
Eén kanttekening als je ToolZool hiervoor gebruikt: onze compressor schrijft WebP alleen in de verliesloze modus, en dat levert bij een foto een bestand op dat een paar keer groter is dan de JPEG zou zijn. Voor een foto met een groottelimiet kies je hier dus JPEG. De reden voor dat gat staat op de pagina van de compressor zelf — er is geen lossy WebP-encoder die we kunnen meeleveren zonder een onverenigbare licentie of een C-toolchain.
Vlakke graphics en tekst: PNG
Logo’s, iconen, diagrammen en screenshots van interfaces bestaan uit harde randen en grote vlakken van dezelfde kleur. Lossy codecs gaan slecht om met harde randen: je krijgt zichtbare rimpeling rond tekst, en omdat de ruis die ze introduceren zelf duur is om te coderen, wordt het bestand vaak groter dan een verliesloze PNG van dezelfde afbeelding.
Transparantie dwingt de keuze af
JPEG heeft geen alfakanaal. Zet je een transparante PNG om naar JPEG, dan worden de transparante delen dichtgezet — meestal zwart, soms wit, zelden wat je bedoelde. PNG en WebP ondersteunen allebei alfa, dus als de afbeelding transparantie heeft, blijven die twee over.
Waar AVIF past
AVIF verslaat WebP op bestandsgrootte bij gelijke kwaliteit, vooral bij lage bitrates, en elke huidige browser kan het tonen. Het coderen is het probleem: dat is dramatisch trager en veel zwaarder dan JPEG of WebP, wat telt als het coderen op een telefoon gebeurt en niet op een buildserver.
ToolZool leest en schrijft vandaag geen AVIF. Beide richtingen vragen om een AV1-codec, en elke onderhouden codec is een C-bibliotheek die niet naar WebAssembly te bouwen is — dus een AVIF-bestand moet eerst ergens anders worden omgezet. Hetzelfde geldt voor HEIC, wat de meeste iPhones standaard produceren.
De vraag die boven dit alles gaat
Wat accepteert het formulier? Een beter formaat dat geweigerd wordt, is niet beter. Lees eerst de toegestane lijst en optimaliseer daarbinnen — en wordt een bestand dat er prima uitziet toch geweigerd, dan werkt waarom een uploadformulier je bestand weigert de vier controles door die een formulier daadwerkelijk uitvoert. Moet je tussen formaten schakelen, dan leest de afbeeldingscompressor JPG, PNG en WebP en schrijft hij JPEG, PNG of verliesloze WebP, zodat hij binnen die set ook als converter dienstdoet.

