Anteckningar från teamet om hantverk, format och de små beslut som ligger bakom en bra rund beskärning.
Varför fotografiska PNG-filer är så stora
PNG lovar att registrera varje pixel utan att tappa något, och det löftet är dyrt på ett foto. Med miljoner mjukt skiftande toner finns det nästan inget för kompressorn att förutsäga eller dra ihop, så filen sväller. Ett genomsnittligt foto på 1600x1200 kan ligga på 3 till 5 MB som PNG, medan precis samma bild som JPEG vid kvalitet 85 ryms i 200 till 400 KB. Skillnaden kokar ner till cosinustransformen som JPEG lutar sig mot, som hugger bilden i block på 8x8, fäller de högfrekventa detaljer ögat knappt märker, och packar det som blir kvar tätt. Material med kontinuerlig ton, vilket är så gott som all fotografi, krymper dramatiskt. PNG:s perfekta trohet förtjänar sin plats på enfärgad grafik och verk under arbete, men det är helt enkelt fel omslag för ett foto du tänker dela.
Genomskinlighet och alfakanalen
En 8-bitars alfakanal låter en PNG registrera vilken grad av täckning som helst per pixel, från helt klar till helt solid. JPG erbjuder inget sådant fält, så genomskinlighet har ingenstans att vara. När bildmotorn bygger om en PNG som JPEG lägger den först bilden över en vald bakgrund, och den bakgrunden står som standard på vit, vilket är just därför klara ytor läses som vita efteråt. Slutsatsen är trubbig, ett genomskinligt JPG kan inte existera, eftersom formatet inte har en aning om det. När friställningen måste överleva är WebP eller den orörda PNG-filen dina enda vägar. Araluma fastnar för vitt som fyllning eftersom det smälter in i de dokument, presentationsbilder och butikslistningar där dessa JPG-filer oftast hamnar.
Uppmätt sparprestanda
Allt detta kommer från Chrome 148 på en Linux-dator, lutat mot webbläsarens egna JPEG-sparande. Vid 0,12 MP är en miniatyr på 400x300 klar på ungefär 10 till 15 ms. Stega till 0,78 MP, en ruta på 1024x768, och den sitter nära 13 till 20 ms. En tagning på 8 MP i 3840x2160 kräver ungefär 1,4 sekunder, och till och med ett monster på 48 MP i 8000x6000 ber bara om runt 1,5 sekunder. Att skriva ett JPG så här slår att skriva ett PNG av samma bild med lätthet, och det springer ifrån AVIF helt, som måste ladda en separat modul och kan slita i 25 sekunder på den 48 MP-bilden även på en dator. Sammantaget är detta en av de snabbaste vägarna någonstans i convert-familjen, och det kostar inget extra att hämta, eftersom JPEG-skrivaren redan bor i varje webbläsare.
Hantering av EXIF och metadata
Att bygga om bilden rensar dess EXIF-, IPTC- och XMP-taggar från det resulterande JPG i varje webbläsare, vilket sopar ut GPS-koordinater, kamerahuset, tidsstämpeln för tagningen, upphovsrättstext och alla anpassade fält PNG-filen bar. ICC-färgprofiler tar en separat väg, där Chrome och Safari behåller sRGB-profilen på utdata medan Firefox rensar den med allt annat. Så JPG är sRGB-säkert överallt, men en bred färgrymdstagg som Display-P3 eller Adobe RGB tar sig inte igenom Firefox. Hänger din pipeline på att hålla all den metadatan, hantera den efteråt med ett ändamålsbyggt verktyg. För vardagligt webb- och delningsbruk är förlusten av taggarna välkommen, den trimmar lite vikt och drar ut platsdata ur dina foton.
När JPG-artefakter är synliga
JPEG resonerar i block på 8x8. Släpp ett hårt hopp mellan två mycket olika färger inuti ett block och kodaren kan bara skissa det med en handfull frekvenstermer, vilket lämnar ringningar, en svag gloria av ljusare eller mörkare pixlar som lägger sig mot kanten. Foton döljer detta väl, eftersom deras kanter aldrig är knivskarpa och den omgivande mikrovariationen maskerar approximationen. Men skärmbilder, logotyper, rutor med skarpa kanter, bokstäver eller intilliggande plattor av enfärgad ton blottar det vid varje kvalitet, eftersom det är precis den signal matematiken kämpar med. Regeln skriver sig själv, håll skärmbilder, logotyper och textrik konst utanför JPG. Lämna dem i PNG, eller flytta till WebP för en smal fil som kringgår ringningarna helt.
Integritet och var arbetet landar
Var arbetet landar beror på mängden. För en enda bild lämnar inget webbläsaren, och du kan kolla det live på några sekunder. Öppna Chrome DevTools, byt till nätverkspanelen, filtrera på XHR och Fetch och konvertera en fil. Inget dyker upp medan kodningen körs. För två eller fler skickar Araluma dem till vår server, som konverterar, buntar resultatet och returnerar en nedladdningslänk. Den länken och de konverterade filerna raderas inom ungefär 2 timmar. Vägen för en bild håller allt på enheten, utanför nätet, medan en sats byter det mot att klara många filer på en gång. För en skärmbild av något privat eller ett foto märkt med din plats håller en i taget det på din maskin, en verklig skillnad, ingen slogan.