LeanImg

Hoe comprimeer ik een batch foto's voor e-mail?

Krijg een batch foto's onder de 25 MB limiet van Gmail door eerst te verkleinen en vervolgens te comprimeren, met gemeten voor- en na-groottes van onze eigen tools.

Gmail snijdt je af bij 25 MB per bericht. Een map met foto's rechtstreeks van een camera overschrijdt dat zonder moeite, en de gebruikelijke reactie is om er vier als bijlage toe te voegen en de rest op te geven. Er is een betere volgorde van handelingen. Verklein eerst de foto's, comprimeer ze daarna, en een set die niet past, wordt een set die past met ruimte over.

Beide stappen worden uitgevoerd in je browser-tab. LeanImg heeft geen API-routes en geen serveracties, dus je foto's komen nooit op een server die belooft ze binnen een uur te verwijderen. Elke concurrent in deze ruimte uploadt eerst. Dat verschil is de hele reden waarom we de tools op deze manier hebben gebouwd, en je kunt het zelf in ongeveer tien seconden controleren met DevTools open.

Hoe groot kan een e-mailbijlage eigenlijk zijn?

De limiet van Gmail is 25 MB per bericht, en daarboven verwijdert Google de bijlage en plaatst een link naar Google Drive. De kant van Microsoft is anders: Exchange Online heeft standaard 35 MB voor verzenden en 36 MB voor ontvangen, een beheerder kan alles instellen van 1 MB tot 150 MB, en Outlook voor iOS en Android stopt bij 33 MB. Dus de persoon die je mail ontvangt, kan een striktere limiet hebben dan jij.

Dan is er de coderingstaks. Bijlagen worden base64-gecodeerd verzonden, wat elke 3 bytes omzet in 4 tekens (RFC 2045, sectie 6.8), en de eigen limietentabel van Microsoft geeft dezelfde 33% vertaalverhoging aan voor berichten die zijn verzonden vanuit zijn datacenters. Werk daar achteruit vanaf. Een limiet van 25 MB voor berichten is ruwweg 18 MB aan daadwerkelijke bestanden op schijf, dus 18 MB is het nummer om op te richten.

Moet ik eerst verkleinen of eerst comprimeren?

Verklein eerst. Het is de grotere hefboom en het is degene die mensen overslaan. Een foto van 3840x2160 heeft 8,3 megapixels, en de 50% preset in onze resizer brengt het terug naar 1920x1080, waarbij drie kwart van de pixels wordt weggegooid voordat een encoder ze aanraakt. De browser doet die downscale zelf via createImageBitmap met hoogwaardige her-sampling. Niemand die je e-mail op een laptop leest, zal het opmerken.

Verwacht niet dat de resizer het werk afmaakt. Het behoudt het formaat dat binnenkomt en hercodeert verliesgevende bestanden standaard met kwaliteit 90, en PNG-uitvoer blijft verliesloos, dus de bytebesparingen die je krijgt, komen voornamelijk van de ontbrekende pixels. Het levert 15 sociale presets plus 25/50/75 procentstappen, en het neemt 10 bestanden of 50 MB per batch. Download de verkleinde set en voer deze vervolgens in de compressor in.

Hoeveel bespaart de kwaliteitslider eigenlijk?

Hier is één foto, texture.jpg op 3840x2160 en 538,6 KB, door onze compressor op vier instellingen. Slimme modus is de standaard en dat is degene die je wilt voor e-mail. Waar een formulier je aan een vast aantal houdt, is de reden dat de slider alleen stilvalt op 131 KB het stuk daarvoor.

texture.jpg, 3840x2160, 538,6 KB bron, JPEG-uitvoer.
InstellingUitvoerVerandering
Slimme modus286,1 KB-47%
Slider 90347,8 KB-35%
Slider 60212,4 KB-61%
Slider 30131 KB-76%
LeanImg compressor toont texture.jpg verminderd van 538,6 KB naar 286,1 KB in slimme modus
Slimme modus op een foto van 3840x2160: 538,6 KB naar 286,1 KB, 47% korting zonder instellingen aan te raken.

Eén ding aan die slider verrast mensen. Voor een JPEG-bron werkt het als een vermenigvuldiger: we lezen de geschatte kwaliteit van de bron uit zijn kwantisatietabellen en schalen met wat je instelt, dus een foto die oorspronkelijk is opgeslagen op 60 met de slider op 80 codeert op 48. Her-codeer een kwaliteit-60 JPEG op een letterlijke 80 zou het bestand opblazen zonder iets te herstellen. Slimme modus kiest 80 voor JPEG, 80 voor WebP, 63 voor AVIF en verliesloos voor PNG, en de codering wordt gedaan door MozJPEG gecompileerd naar WebAssembly.

Waarom is mijn screenshot nog steeds groot nadat ik het heb gecomprimeerd?

Omdat PNG verliesloos is, en verliesloos heeft een vloer. Neem alpha.png, 900x606 met transparantie, 942,4 KB. De optie "PNG Geen compressie" draait oxipng op niveau 3 en krijgt het naar 383,9 KB, 59% korting met elke pixel bit-identiek aan het origineel. De optie "PNG Kleinere bestandsgrootte" draait imagequant, die de afbeelding opnieuw opbouwt op een palet van 256 kleuren, en dat komt uit op 98,3 KB. Zelfde afbeelding, 90% verdwenen.

Paletkwantisatie is geschikt voor vlakke UI-kleur, logo's en lijnkunst. Het brengt zichtbare banding in gradiënten en huidskleuren, dus foto's zijn de verkeerde klant ervoor. Als een PNG in je batch helemaal geen transparantie heeft, is de goedkoopste zet PNG naar JPG voordat je comprimeert. De splitsing tussen foto's en screenshots is degene die dat beslist.

Moet ik converteren naar WebP of AVIF om meer eruit te persen?

Voor e-mail, nee. Zelfde texture.jpg, zelfde sliderpositie, drie encoders:

texture.jpg, 3840x2160, 538,6 KB bron.
FormaatBij slider 80Bij slider 63Encodeertijd
JPEG286,1 KBniet gemetendirect
WebP290,3 KB200,6 KBdirect
AVIF312,7 KB186,9 KBongeveer 10 seconden

Die tabel lijkt achterstevoren totdat je weet waarom. JPEG's 80 werd herschaald tegen de eigen kwaliteit van de bron, dus het was effectief lager, terwijl WebP en AVIF 80 letterlijk nemen. Verlaag AVIF naar zijn slimme standaard van 63 en het wint op grootte met 186,9 KB, wat het kleinste nummer op deze pagina is. Het kostte ook ongeveer 10 seconden per afbeelding, en AVIF ondersteuning buiten browsers is onbetrouwbaar. De mailclient van je ontvanger is geen browser. Stuur JPEG.

Verwijdert comprimeren de GPS-locatie uit mijn foto's?

Ja, en het verwijdert ook alles andere. Compressie decodeert hier naar ruwe pixels en hercodeert, wat EXIF, GPS-coördinaten, cameramodel, het ICC-profiel en de ingesloten miniatuur verwijdert. De afbeeldingsoriëntatie blijft bestaan, dus niets arriveert zijwaarts. Dat is belangrijker dan het klinkt: foto's van een huis, een auto of de school van een kind dragen de coördinaten waar ze zijn genomen, en het e-mailen van de originelen geeft die aan wie de boodschap doorgestuurd krijgt. Onze privacy pagina legt de rest uit.

Worden de foto's geüpload terwijl dit gebeurt?

Nee. Open het Netwerkpaneel in DevTools voordat je de bestanden drop en kijk: de codecs laden één keer vanuit dezelfde oorsprong, en daarna draagt geen enkele aanvraag je afbeelding ergens naartoe. MozJPEG, oxipng en imagequant draaien allemaal als WebAssembly in de tab, met de eigen canvas-encoder van de browser als fallback voor JPEG, PNG en WebP. Niets om later te verwijderen, omdat er nooit iets is opgeslagen.

Probeer het op de batch die momenteel vastzit in je concepten. Open de resizer, drop tot 10 foto's, druk op de 50% preset en download ze. Voer die door de compressor in slimme modus, en lees dan het totaal op de download-alles-knop voordat je iets bijvoegt. Onder 18 MB en Gmail accepteert het. Als een van de bestanden een scan is die je als document wilt verzenden, behandelt ons stuk over het converteren van een JPG naar PDF wat die stap doet met de grootte.