Note del team su artigianato, formati e le piccole decisioni dietro un buon ritaglio rotondo.
Il contenitore senza perdita, cosa memorizza il PNG
Il PNG si appoggia a DEFLATE, un algoritmo senza perdita. Scrive i valori RGBA di ciascun pixel esattamente, fa passare prima un filtro reversibile su ogni riga, poi stringe il tutto con un flusso in stile zlib. Senza perdita qui significa che i valori che decomprimi sono quelli identici che hai messo dentro, byte per byte. Nel caso JPG in PNG, i valori in entrata sono i pixel che il browser restituisce dopo aver decodificato il JPEG, e quelli portano già ogni approssimazione introdotta dalla codifica JPEG originale. Così il PNG registra diligentemente le approssimazioni, non la scena reale che è stata fotografata. Misurato, un JPEG da 17 KB a 1024x768 atterra vicino a 105 KB come PNG, mentre uno da 116 KB a 3840x2160 raggiunge circa 384 KB. I multipli seguono la risoluzione più che l'impostazione di qualità JPEG, ed è per questo che restano pressoché costanti tra i contenuti. Il contenitore si guadagna il posto fermando il declino, non invertendolo.
Perché la qualità JPEG non si può recuperare
Il JPEG perde informazione per sempre. La sua compressione fa girare una trasformata coseno su blocchi di 8x8, arrotonda i coefficienti di frequenza verso un insieme più grezzo, e memorizza quei numeri arrotondati. Quell'arrotondamento va in una sola direzione, quindi un coefficiente che leggeva 47 prima di essere agganciato a 50 non potrà mai essere riportato indietro, e il file non conserva alcuna memoria del 47. Decodificare il JPEG ricostruisce i pixel dai coefficienti arrotondati, che sono ipotesi sugli originali. Avvolgi quelle ipotesi nel PNG e ottieni una copia impeccabile di un'immagine difettosa. Niente di tutto questo è un difetto del PNG o di Araluma, è solo il modo in cui lavora la compressione con perdita, con qualunque cosa lasciata cadere alla codifica che resta caduta. L'unica via verso una qualità JPEG migliore è tornare alla sorgente non compressa o al file RAW.
Crescita di dimensione misurata
Quanto un JPG si gonfia nel suo passaggio a PNG dipende dall'immagine, ma l'andamento è costante. Le fotografie affollate con ricchi cambi di tono crescono di più, perché quello è il materiale che il JPEG comprime in modo superbo mentre il codificatore senza perdita del PNG non riesce a tenere il passo su pixel così rumorosi. Dai test di questo strumento, una foto JPEG da 17 KB a 1024x768 diventa un PNG da 105 KB, circa un salto di sei volte, e una foto JPEG da 116 KB a 3840x2160 diventa un PNG da 384 KB, circa 3,3 volte più grande. Il materiale piatto come screenshot e icone si adatta male al JPEG fin dall'inizio e tende a pesare di più lì, quindi il suo PNG cresce meno bruscamente. La lezione è chiara, se un risultato più piccolo è ciò che insegui, trasformare un JPG in PNG ti spinge nella direzione sbagliata.
Trasparenza, la capacità rispetto al contenuto
Il canale alfa a 8 bit del PNG è una caratteristica del contenitore, che lascia ogni pixel portare un'opacità da 0 per del tutto limpido a 255 per del tutto solido. Quando un JPG viene ricostruito come PNG attraverso il motore immagini della piattaforma, ogni pixel esce a 255, del tutto opaco, perché il JPG non aveva trasparenza da passare in primo luogo. Il PNG sta pronto a conservare dati alfa, il file semplicemente non ne contiene, dato che nessuno esisteva alla sorgente. Mettere trasparenza nell'immagine richiede un'operazione separata, mascherando lo sfondo a mano in un editor o lanciando una rimozione automatica dello sfondo. Un rimuovitore regolato per individuare il soggetto può consegnare un PNG con alfa autentico portando l'opacità dei pixel di sfondo a zero dopo la conversione.
Gestione dei metadati EXIF
Quando il file viene ricostruito, le sue etichette EXIF, IPTC e XMP cadono via dal PNG su ogni browser, portando con sé coordinate GPS, il corpo macchina, la data dello scatto, il testo di copyright e qualunque XMP personalizzato il JPG tenesse. I profili colore divergono un poco. Chrome e Safari mantengono l'etichetta sRGB su ciò che esce, mentre Firefox la lascia andare con tutto il resto. Così il PNG è sicuro per sRGB ovunque tu lo apra, anche se un profilo a gamma estesa come Display-P3 o Adobe RGB non sopravvive attraverso Firefox. Per l'uso ordinario sul web e di condivisione, lasciar cadere le etichette è un vantaggio, sgravando un po' di peso e togliendo i dati di posizione dalle tue foto. Per il lavoro professionale o di archivio che deve trattenere i suoi metadati incorporati, gestisci quella catena con uno strumento apposito prima o dopo che converti.
La privacy e dove finisce il lavoro
Dove finisce il lavoro dipende dalla quantità. Per una singola immagine, niente lascia il browser, e puoi verificarlo dal vivo in pochi secondi. Apri i DevTools di Chrome, passa al pannello Rete, filtra per XHR e Fetch e converti un file. Non appare nulla durante la codifica. Per due o più, Araluma li invia al nostro server, che converte, raggruppa il risultato e restituisce un link di download. Quel link e i file convertiti vengono eliminati in circa 2 ore. Il percorso per una sola immagine tiene tutto sul dispositivo, fuori dalla rete, mentre un lotto lo scambia con il chiudere molti file in una volta. Per la cattura di qualcosa di privato o una foto marcata con la tua posizione, convertire una alla volta la tiene sulla tua macchina, una differenza reale, non uno slogan.