Notater fra teamet om håndverket, formater og de små valgene bak et godt resultat.
Hvorfor fotografiske PNG-er er så store
Tapsfri PNG-kompresjon lagrer hver piksel nøyaktig. For et fotografisk bilde med millioner av små variasjoner i tone gir det svært store filer, fordi det nesten ikke finnes noe å fjerne dobbelt eller forutsi mellom nabopiksler. Et typisk bilde på 1600x1200 lagres som en stor PNG. Det samme bildet som JPEG med kvalitet 85 lander på 200 til. Det spranget kommer fra den diskrete cosinustransformasjonen i hjertet av JPEG, som virker i blokker på 8x8 piksler, forkaster høyfrekvent detalj synssystemet er minst følsomt for, og lagrer de gjenværende koeffisientene kompakt. Resultatet er en mye mindre fil for ethvert bilde med kontinuerlig tonevariasjon, som i praksis er hvert fotografi. PNG sin tapsfrie garanti er verdifull for grafikk og arbeidsfiler, men det er feil beholder for fotografier som skal ut for deling.
Gjennomsiktighet og alfakanalen
PNG støtter en full 8-bits alfakanal, det vil si at hver piksel kan være alt fra helt gjennomsiktig til helt ugjennomsiktig. JPG definerer ingen alfainformasjon i det hele tatt, siden beholderen ikke har noe felt for gjennomsiktighet per piksel. Når bildemotoren i plattformen lagrer en PNG på nytt som JPEG, settes alfakanalen sammen mot en bakgrunnsfarge før lagringen. Standard bakgrunn er hvit, og det er derfor gjennomsiktige felt i en PNG vises hvite i den ferdige JPG-en. Det avgjørende poenget er at ingen verktøy kan lage en gjennomsiktig JPG, fordi formatet ikke støtter selve ideen. Hvis det å bevare utsnittet er viktig, er svaret WebP eller å beholde PNG-en. RoundCut velger hvit som utflatingsfarge siden den passer bakgrunnen i de fleste dokumenter og produktoppføringer.
Målt lagringsytelse
Målt på Chrome 148, Linux stasjonær maskin, med JPEG-lagringen i plattformen. Et bilde på 400x300 (0,12 MP) lagres på rundt 10 til 15 ms. Et bilde på 1024x768 (0,78 MP) lagres på rundt 13 til 20 ms. Et bilde på 3840x2160 (8 MP) lagres på rundt 1,4 sekunder. Et bilde på 8000x6000 (48 MP) lagres på rundt 1,5 sekunder. JPEG-lagring i nettleseren er vesentlig raskere enn PNG-lagring for samme bilde, og langt raskere enn AVIF, som trenger en egen modul og kan ta 25 sekunder ved 48 MP selv på stasjonær Chrome. Denne hastighetsfordelen gjør PNG til JPG til en av de raskeste konverteringsbanene i denne familien, uten ekstra nedlastingskostnad fordi JPEG-lagring er innebygd i alle nettlesere.
Håndtering av EXIF og metadata
Lagringspipelinen fjerner EXIF, IPTC og XMP fra resultat-JPG-en i alle nettlesere. Det betyr at posisjonskoordinater, kameramodell, opptaksdato, opphavsrettsnotis og eventuelle egendefinerte felt i kilde-PNG-en fjernes. ICC-fargeprofiler følger en annen vei, der Chrome og Safari bevarer sRGB-ICC-profilen i resultatet mens Firefox fjerner den helt. Det praktiske resultatet er at den konverterte JPG-en er sRGB-trygg på tvers av nettlesere, men hvis PNG-en var merket med en profil med bredt fargeområde som Display-P3 eller Adobe RGB, overlever ikke det merket i Firefox. Hvis det å bevare fullstendige metadata er et krav i arbeidsflyten, rediger dem med et eget verktøy etter konverteringen. For vanlig nett- og delingsbruk er fjerning av metadata nyttig fordi det trimmer filen litt og fjerner GPS-data fra bilder.
Når JPG-artefakter er synlige
JPEG-kompresjon virker i blokker på 8x8 piksler. Når kildebildet inneholder en hard overgang mellom to svært ulike farger innenfor én blokk, tilnærmer JPEG-kompresjonen den overgangen med begrensede frekvenskoeffisienter. Resultatet er ringvirkninger, en glorie av lysere eller mørkere piksler rundt kanten. I fotografier er dette usynlig, fordi kanter aldri er helt skarpe og virkelige bilder bærer mikrovariasjon som tilnærmingen treffer godt. I skjermbilder, logoer, grensesnittelementer med harde kanter, tekst eller tilstøtende flate fargeflater er ringvirkningene tydelig synlige ved enhver innstilling, fordi nettopp slike elementer er den typen signal algoritmen håndterer dårlig. Rådet er enkelt, ikke konverter skjermbilder, logoer eller tekst-tunge bilder til JPG. Behold dem som PNG, eller bruk WebP for en mindre fil som unngår problemet helt.
Personvern i praksis
Hvor konverteringen skjer avhenger av antallet filer. For ett enkelt bilde forlater ingen data nettleseren, og det er verifiserbart i sanntid. Listen forblir tom under kodingen. For to eller flere filer sender RoundCut dem til serveren vår, som konverterer, pakker resultatet og returnerer en nedlastingslenke. Den lenken og de konverterte filene slettes innen omtrent 2 timer. Veien for ett bilde kjører helt på enheten din, utenfor nettet, mens bunkeveien bytter det mot bekvemmeligheten av å konvertere mange filer på én gang. For bilder med følsomt innhold, som et skjermbilde av et personlig dokument eller et foto med posisjonsdata, holder én om gangen alt lokalt.