Anteckningar från teamet om hantverk, format och de små beslut som ligger bakom ett bra resultat.
Den förlustfria behållaren, vad PNG lagrar
PNG bygger på den förlustfria algoritmen DEFLATE. Den lagrar varje pixels RGBA-värden exakt som de levereras, lägger ett återställningsbart filter på varje skannrad och komprimerar resultatet med en zlib-variant. Förlustfritt betyder att de dekomprimerade pixelvärdena är byte-identiska med originalen. I fallet JPG till PNG är originalen de pixlar som uppstår när webbläsaren avkodar JPEG:n. De avkodade pixlarna speglar redan alla approximationer JPEG gjorde vid sin ursprungliga kodning, så PNG lagrar troget de approximerade pixlarna, inte den verkliga scenen. Mätt blir en JPEG på i 1024x768 runt som PNG, och en JPEG på i 3840x2160 växer till omkring . Multiplarna håller grovt över innehållstyper eftersom förhållandet följer upplösningen, inte JPEG-kvalitetsnivån. Den förlustfria behållaren är värdefull för vad den hindrar, fortsatt försämring, inte för vad den återställer.
Varför JPEG-kvalitet inte kan återställas
JPEG-komprimering kastar bort information för gott. Kodningen tillämpar en diskret cosinustransform på 8x8-pixelblock, kvantiserar de resulterande frekvenskoefficienterna till en mindre uppsättning och lagrar dessa kvantiserade värden. Kvantiseringssteget går bara åt ett håll, för en koefficient som var 47 och rundades till 50 kan inte föras tillbaka till 47 senare, och ingen notering om originalvärdet överlever i filen. När webbläsaren avkodar JPEG:n rekonstruerar den pixlar från de kvantiserade koefficienterna, som är approximationer av originalvärdena. Att koda om de approximerade pixlarna som PNG ger en förlustfri notering av approximationerna, så PNG är en perfekt återgivning av den försämrade bilden. Det är ingen begränsning hos PNG eller hos detta verktyg, det är en grundläggande egenskap hos förlustkomprimering, där information som kastas vid kodning är borta. Bättre JPEG-kvalitet kräver att man börjar från det okomprimerade originalet eller RAW-filen.
Uppmätt tillväxt av filstorlek
Storleksförhållandet från JPG till PNG varierar med bildinnehållet men följer ett förutsägbart mönster. Fotografiska bilder med komplex tonvariation växer mest, eftersom JPEG:s transform är finjusterad just för det innehållet och når höga komprimeringsförhållanden, medan PNG:s förlustfria kodare inte kan matcha dem på brusig pixeldata. Testmätningar från det här verktyget visar att ett JPEG-foto på i 1024x768 ger en PNG på , ungefär sex gånger större, och ett JPEG-foto på i 3840x2160 ger en PNG på , ungefär 3,3 gånger större. För platt material som skärmbilder och ikoner passar JPEG dåligt från början och dess filer tenderar att bli större vid samma kvalitet, så PNG:n av samma innehåll växer mindre dramatiskt. Den praktiska följden är direkt, om resultatets filstorlek spelar roll för ditt fall gör en konvertering från JPG till PNG saken sämre, inte bättre.
Transparens, förmågan kontra innehållet
PNG stöder en 8-bitars transparens som en behållarfunktion, där en fil kan inkludera opacitetsvärden per pixel från 0 (helt transparent) till 255 (helt opak). När en JPG konverteras till PNG via plattformens bildmotor sätts den resulterande PNG:n till helt opak, varje pixel på alfavärdet 255, eftersom käll-JPG:n inte hade någon transparensinformation från början. PNG-formatet är redo att bära transparensdata, filen innehåller bara ingen, eftersom ingen fanns i källan. Att lägga till transparens i bilden kräver separat bearbetning, antingen att maska bakgrunden i en redigerare eller ett automatiskt bakgrundsborttagningssteg. Ett bakgrundsborttagningsverktyg som tränats att identifiera motivet kan ge en PNG med riktig alfa genom att nolla alfavärdena på bakgrundspixlarna efter konverteringen.
Hantering av EXIF-metadata
Omkodningskedjan tar bort EXIF-, IPTC- och XMP-metadata från PNG-resultatet i varje webbläsare. Det betyder att GPS-koordinater, kameramodell, fotodatum, copyrighttexter och eventuella egna XMP-fält i käll-JPG:n tas bort. ICC-färgprofiler följer en något annan väg, där Chrome och Safari bevarar sRGB-ICC-profiltaggen i resultatet medan Firefox tar bort den tillsammans med all annan metadata. Det praktiska resultatet är sRGB-säkert resultat över webbläsare, men profiler med brett färgomfång som Display-P3 eller Adobe RGB går förlorade i Firefox. För de flesta webb- och delningsändamål är borttagen metadata till hjälp, för det krymper resultatet något och tar bort platsdata från foton. För professionell fotografi eller arkivflöden där inbäddad metadata måste bevaras, hantera metadatakedjan med ett särskilt verktyg före eller efter formatkonverteringen.
Integritet i praktiken
Var konverteringen sker beror på antalet filer. För en enda bild lämnar ingen data webbläsaren, och det går att verifiera i realtid. Nätverket förblir inaktivt vid en enskild konvertering. Listan förblir tom under kodningen. För två eller fler filer skickar RoundCut dem till vår server, som konverterar, packar 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 körs helt på din enhet, utanför nätet, medan satsvägen byter det mot bekvämligheten att konvertera många filer på en gång. För bilder med känsligt innehåll, som en skärmbild av ett personligt dokument eller ett foto med platsdata, håller en i taget allt lokalt.