Så minskar du en bilds filstorlek
Uppladdningsformuläret vill ha under 2 MB och mitt foto är 8 MB. Vad ska jag faktiskt ändra?
Tre reglage, och ett av dem dominerar
Varje bildkomprimerare drar i någon kombination av tre reglage: hur många pixlar bilden har, hur mycket detalj kodaren får kasta bort och vilket format den skriver. Folk tar tag i kvalitetsreglaget först eftersom det är det som varje verktyg visar först. Det är oftast fel ställe att börja på.
Måtten dominerar, eftersom filstorleken ungefär följer antalet pixlar och antalet pixlar växer med kvadraten på den linjära storleken. Att halvera bredden och höjden lämnar en fjärdedel av pixlarna kvar. Ingenting du kan göra med ett kvalitetsreglage är så avgörande, och ingenting annat kostar så lite i upplevd kvalitet — förutsatt att resultatet fortfarande är större än rutan det ska visas i.
Räkna ut hur många pixlar du faktiskt behöver
En modern telefonkamera producerar bilder som är omkring 4000 pixlar breda. Ett foto i helskärm på en laptop visas i något som 1500 till 2000 pixlars bredd, och ett foto inne i en artikel visas ofta i 800. Att skicka 4000 pixlar till en ruta som visar 800 innebär att omkring 96 procent av pixlarna kastas av betraktarens programvara efter att de har laddats ned.
| Längsta sidan | Ungefärligt antal pixlar | Andel av originalet på 4000 px |
|---|---|---|
| 4000 px | 10,7 miljoner | 100 % |
| 2560 px | 4,4 miljoner | 41 % |
| 1920 px | 2,5 miljoner | 23 % |
| 1280 px | 1,1 miljoner | 10 % |
| 800 px | 0,4 miljoner | 4 % |
Procenttalen är aritmetik, inte en mätning av någon särskild fil — en komprimerad fil krymper inte i exakt proportion till sitt pixelantal. De är ändå det rätta att titta på först, eftersom de visar hur mycket utrymme omskalningen ger kodaren innan den måste börja kasta bort detaljer.
Vad kvalitetsreglaget gör
I en JPEG-kodare skalar kvalitetssiffran en tabell av divisorer som tillämpas på frekvenskoefficienterna i varje 8×8-block. Lägre kvalitet betyder grövre division, vilket betyder att fler koefficienter avrundas till noll, vilket betyder färre bitar. Den synliga kostnaden dyker först upp runt hårda kanter och i mjuka övergångar: ringningar bredvid text och banding i himlar.
Skalan är inte linjär och den är inte jämförbar mellan format. Kvalitet 80 i en JPEG-kodare, en WebP-kodare och en AVIF-kodare är tre orelaterade siffror som råkar dela samma intervall. Bedöm resultatet genom att titta på det i full storlek, inte genom att lita på siffran.
Varför ett storleksmål är en sökning, inte en inställning
Ingen kodare accepterar ”gör den här 500 KB” som instruktion. Den tar emot en kvalitetsinställning och producerar den storlek som inställningen ger för just den bilden. Ett verktyg som erbjuder dig en målstorlek kör därför en sökning: koda, mät, justera kvaliteten, koda igen, och sluta när resultatet är under budgeten eller när kvalitetsgolvet är nått.
Det är därför ett mål alltid är en bästa ansträngning. Ett detaljrikt, brusigt fotografi i hög upplösning får kanske inte plats i en snäv budget vid någon kvalitet en människa skulle acceptera, och det ärliga är att stanna vid golvet och berätta var det stannade i stället för att fortsätta tills bilden är förstörd. FileSlimmers verktyg för målstorlek minskar måtten först, snävar sedan in kvaliteten mellan två gränser och rapporterar vilken inställning de slutade på.
Så får du en bild under 1 MB
Börja med att skala om ett telefonfoto till de största mått destinationen behöver. För e-post, formulär och vanliga webbsidor är det ofta långt under kameraoriginalet. Koda sedan en ny JPEG eller WebP i hög men inte maximal kvalitet, mät resultatet och sänk kvaliteten gradvis bara om filen fortfarande ligger över 1 MB.
Kvaliteten ensam avgör inte om ett resultat hamnar under 1 MB, eftersom detaljrika bilder behöver mer data än enkla. Om första försöket missar gränsen, minska måtten innan du tvingar ned kvaliteten. Det bevarar normalt en mer naturlig bild än att behålla varje pixel och lägga till kraftiga block- eller ringningsartefakter.
Sådant som inte hjälper
- Att lägga filen i en ZIP. Komprimerade bildformat har nästan ingen redundans kvar för en generell komprimerare att hitta; arkivet blir i praktiken lika stort som originalet.
- Att byta filändelse. Byten ändras inte, och programvara som läser den faktiska filsignaturen blir bara förvirrad.
- Att spara om en JPEG i samma kvalitet. Det är en andra destruktiv omgång: filen blir inte mindre på något användbart sätt och bilden blir en aning sämre.
- Att rensa bort metadata från ett fotografi, om storlek är ditt enda mål. Några kilobyte EXIF mot flera megabyte pixlar är brus. Rensa det av integritetsskäl, som är verkliga, inte för storlekens skull.
Ett arbetssätt som oftast når fram
- Bestäm den största storlek bilden någonsin kommer att visas i, och skala om längsta sidan till den.
- Välj det format som passar innehållet: ett destruktivt format för fotografier, ett förlustfritt för skärmbilder och flat grafik.
- Börja i hög men inte maximal kvalitet och stega ned tills du ser skadan, och stega sedan upp ett steg igen.
- Kontrollera resultatet i full storlek, på den sortens skärm det är avsett för.
- Om det fortfarande är för stort, gå tillbaka till första steget. Det finns nästan alltid mer utrymme i måtten än i kvaliteten.
Var det här slutar fungera
Vissa bilder står emot allt det här. Ett inskannat dokument fullt av finstilt text behöver sina pixlar för att förbli läsbart, så omskalning skadar direkt och sänkt kvalitet ger exakt de artefakter som gör text svårläst. En skärmbild av ett kalkylblad har samma problem. För dem är svaret ofta ett annat format — förlustfritt, eller en PDF — snarare än ett lägre antal kilobyte.
Och om en portal avvisar din fil, kontrollera om gränsen gäller filstorleken eller pixelmåtten. Det är olika gränser, och en fil som klarar den ena kan ändå falla på den andra.
Verktyg för det här
Källor
- 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