Fotogalerij: resolutie, compressie en een verbod op gezichtsherkenning
De schoolwebsite krijgt een fotogalerij van de open dag. Er zijn 240 foto's, elk 4000 bij 3000 pixels en opgeslagen als 24-bits PNG. De huidige gemiddelde bestandsgrootte is 8 MB per foto. De hostinglimiet voor de galerij is 500 MB. De webmaster wil de foto's verkleinen naar 1600 bij 1200 pixels en opslaan als JPEG met kwaliteit 80; daarmee wordt een gemiddelde bestandsgrootte van 300 KB verwacht. Een collega stelt voor om alles als GIF op te slaan, omdat GIF klein is. Een logo met scherpe tekst en een foto van een leerling met een rood shirt moeten allebei in de galerij komen. De school wil de originele foto's wel bewaren voor het archief, maar niet op de webserver. De fotograaf heeft toestemming gegeven voor publicatie, mits de afbeeldingen niet worden gebruikt voor gezichtsherkenning.
1. Bereken de opslag die de 240 foto's nu innemen en de opslag na de voorgestelde verkleining. Laat je berekening zien en beoordeel of de galerij binnen de 500 MB past.
Read the worked answer
Huidig: 240 × 8 MB = 1920 MB, dus ruim boven de limiet van 500 MB. Na verkleining: 240 × 300 KB = 72.000 KB ≈ 72 MB, ruim binnen 500 MB.
Ter controle: één onbewerkte foto is 4000 × 3000 × 3 bytes = 36.000.000 bytes ≈ 36 MB. 240 daarvan is 240 × 36 MB = 8640 MB ≈ 8,6 GB. PNG comprimeert verliesvrij, maar haalt in de praktijk vaak maar een factor 4 tot 5. De JPEG-berekening laat zien dat resolutie verlagen en lossy comprimeren samen de grootste winst opleveren. De originele bestanden horen dus niet op de webserver maar in een archief.
2. Leg uit waarom GIF voor de foto van de leerling een slechte keuze is en voor het logo met scherpe tekst misschien wel werkt. Betrek kleurdiepte, compressie en kwaliteit.
Read the worked answer
GIF ondersteunt maximaal 8 bits per pixel, dus 256 kleuren uit een palet. Een foto met huidtinten en een rood shirt bevat veel meer kleuren; bij quantiseren ontstaan banding en dithering, en de kwaliteit gaat zichtbaar achteruit. Bovendien is GIF verliesvrij met LZW, maar dat helpt niet tegen het kleurverlies. Voor de foto is JPEG (of WebP/AVIF) daarom beter, ondanks de lossy compressie.
Voor het logo met scherpe tekst en vlakke kleuren werkt GIF of PNG beter dan JPEG: JPEG is lossy en geeft ringing en artefacten rond letters. GIF kent daarnaast alleen 1-bit transparantie, wat bij een logo op een gekleurde achtergrond lelijk kan uitpakken. Conclusie: gebruik voor de foto JPEG, voor het logo PNG; gebruik GIF alleen als animatie nodig is.
3. De fotograaf verbiedt gezichtsherkenning. Noem twee technische maatregelen en één organisatorische maatregel om te voorkomen dat de gepubliceerde galerij voor gezichtsherkenning wordt gebruikt, en leg uit waarom verkleinen naar 1600×1200 alleen niet voldoende is.
Read the worked answer
Technisch: (1) publiceer de galerij achter een login of deel alleen een link met ouders, zodat niet iedereen kan downloaden; (2) verklein verder, voeg een zichtbaar watermerk toe en verwijder metadata zoals EXIF. Organisatorisch: leg in de overeenkomst met de fotograaf en in de privacyverklaring vast dat gezichtsherkenning niet is toegestaan en spreek een meld- en verwijderprocedure af.
Verkleinen naar 1600×1200 is onvoldoende: gezichtsherkenning werkt al op veel kleinere gezichten, zolang ogen, neus en mond zichtbaar zijn. Resolutie is geen technische barrière; een kwaadwillende kan de afbeelding weer opschalen. De school moet daarom vooral de verspreiding beperken en afspraken maken, niet alleen rekenen op het pixelaantal.