domenica 10 luglio 2011

2 PNG, not GIF (but un poc yes).


Più o meno tutti conosciamo i formati grafici più diffusi, vero? Parlo di ".GIF", ".JPEG" e ".PNG"... Ognuno di loro ha i suoi pro ed i suoi contro. Sono praticamente onnipresenti nel quotidiano della rete; immutati ed immutabili da decenni...

Oppure no? ;)

Della serie: mi tocca scrivere un bel "posticino" sul formato ".APNG" che, bistrattato da anni, meriterebbe di ritagliarsi uno spazio anche lui tra i "vips" del settore, mentre ancora oggi è abbastanza relegato nei bassifondi della rete... Che per trovare informazioni su di lui unitamente a qualche programma semi decente per manipolarlo per il meglio, hai sputato sangue per quasi tre giorni, e scusatemi se è poco! :D

Ok. Rimbocchiamoci le maniche ed andiamo ad incominciare ma, prima di snocciolare nozionismo e suggerimenti a piene mani, vista l'esperienza maturata, è probabilmente doveroso fare un breve excursus sui formati grafici succitati, in modo da chiarire per bene le loro potenzialità e creare nel contempo un background informativo utile per comprendere pienamente le implicazioni finali di questo chilometrico post...

...Ed un po' anche per chiacchierare a vanvera, va là! :)

E' bello "menar il can per l'aia"?

".GIF".
  
Acronimo di "Graphics Interchance Format", il ".GIF" è un formato grafico di tipo "raster" largamente diffuso su Internet. Venne ideato nel 1987 da "CompuServe" (storicamente il primo ed il più grande servizio commerciale on-line degli Stati Uniti).

Tecnicamente parlando, il formato grafico è basato sull'impiego di una tavolozza "VGA" composta da 256 colori definiti da terne di valori "RGB" ("Rosso", "Verde", "Blu") della dimensione di un byte cadauno (quindi compresi tra 0 e 255). In questo modo, sono possibili 256*256*256 sfumature diverse, equivalenti a circa 16,8 milioni di tinte differenti.

Parecchie, no? ;)

Giudicate voi...

Sfortunatamente, come accennavamo in precedenza, per la creazione di una ".GIF", il grafico ha l'obbligo di scegliere solo 256 colori, tra tutto questo popò di roba... ;) Le tinte selezionate vengono quindi indicizzate e numerate da 0 a 255. A questo punto arriva il bello... :D Il computer, per comporre un'immagine ".GIF", rappresenta ogni singolo pixel sullo schermo con un solo misero byte che gli dice quale tinta adoperare, tra quelle disponibili entro la tavolozza indicizzata. In questo modo, il formato grafico riesce a restare sempre bello snello ed in forma rispetto a tutti i suoi colleghi che adoperano una terna di valori "RGB" per ogni punto che forma l'immagine... :D

Il problema è che, per quanto 256 tinte possano sembrare parecchie, sono comunque poche ed inadeguate per rendere con naturalezza fotografie ed in generale immagini dal tono continuo... I grafici più sgamati adoperano il "dithering" (ovvero l'accostamento di pixels di colori differenti per creare retinature, trame e sfumature che, ingannando l'occhio, danno l'illusione di una maggiore quantità di colori su schermo...) per ovviare a questo problema, che comunque persiste e non è aggirabile altrimenti.

Nel 1989, "CompuServe" ha comunque dato una considerevole sferzata a codesto formato grafico, aggiornandolo alla versione "89a", che introduce due significativi cambiamenti. In primo luogo, una delle tinte della tavolozza può essere definita come "trasparente", moltiplicando così l'usabilità e la versatilità del formato grafico. Seconda ma non meno importante modifica: viene aggiunto il supporto per le immagini multiple con temporizzazione variabile dei fotogrammi; cosa che permette ai grafici di creare delle animazioni più raffinate rispetto al passato (perchè, a dire il vero, già nel formato precedente era presente la possibilità di animare sequenze di immagini, ma senza poterne controllare la temporizzazione... :P ).

Era di fatto nato uno standard che ancora oggi va per la maggiore, dopo 22 anni abbondanti! :D

".JPEG".

Il ".JPEG" o, più brevemente, ".JPG" è il secondo formato grafico che abbiamo elencato in apertura di post. Storicamente parlando, nasce nel 1992 ad opera del "Joint Photographic Experts Group" e, com'è oltremodo evidente, il nome del comitato creatore del formato grafico è stato trasformato nell'acronimo che costituisce l'estensione del formato stesso... :)

Tecnicamente parlando, il formato ".JPG" è da sempre la "prima scelta" per la riproduzione digitale di immagini fotografiche con variazioni "a tono continuo" dei campi di colore. In tal senso, si contrappone nettamente ed in maniera complementare al ".GIF". Infatti, se nella riproduzione fotorealistica delle sfumature primeggia senza dover ricorrere al "dithering" oppure ad altri escamotage, per contro nella resa di immagini testuali/iconiche ad alto contrasto paga l'evidentissimo scotto di generare innumerevoli artefatti che lo rendono sconsigliabile per questo tipo di impiego, che è e rimane il pane quotidiano del formato ".GIF". ;)

Questo dipende principalmente dalla caratteristica peculiare del ".JPEG": la compressione.

Infatti, in tal senso, le immagini ".JPEG" sono elaborate attraverso un algoritmo di compressione dei dati di tipo "lossy"... Questo significa che quando creiamo un'immagine e poi la salviamo in formato ".JPEG", una certa quantità dei dati che la compongono vengono eliminati e vanno irrimediabilmente perduti, con possibili ripercussioni sulla qualità complessiva dell'immagine stessa.

Il risultato è comunque variabile e dipende dalle esigenze del grafico. Di fatto, la resa finale potrà oscillare tra un'immagine minimamente compressa (praticamente indistinguibile rispetto all'originale...) ed un orrendo mosaico inutilizzabile ed inguardabile... :D

Dalle stelle...

...Alle stalle!!! :D

Ad ogni modo, proprio la possibilità di mediare tra "peso dell'immagine" e "qualità visiva" ha permesso al formato ".JPEG" di imporsi anche lui abbastanza agevolmente come standard, principalmente perchè i grafici, al tempo delle connessioni Internet lente, avevano la possibilità di controllare materialmente il peso di ciò che producevano, mediando tra le necessità della navigazione e l'impatto visivo. E questa non è cosa da poco... Alle volte ha rilevanza ancora oggi!!! :)

".PNG".

".PNG" sta per "Portable Network Graphics" ma una leggenda urbana vuole che in realtà l'acronimo sia ricorsivo ed autoreferenziale... Ovvero ".PNG" starebbe anche per "PNG, not GIF". :D Il formato infatti nasce nel 1994 per sostituire e soppiantare (trattandolo anche parecchio malamente... ;) ) il formato grafico ".GIF" che, nel mentre, aveva deciso di punto in bianco di diventare "a pagamento"... :D

Per fare questo, ".PNG" propone una compressione dei dati di tipo "lossless" che sfrutta un algoritmo  gratuito e non brevettato denominato "DEFLATE", affine al metodo di compattazione "ZLib". Morale: l'immagine non perde un pixel che sia uno, nel processo. :)

Inoltre, il formato supporta la palette "RGB" a 24 Bit e, come se tutto ciò non bastasse, anche la "RGBA" ("Rosso", "Verde", "Blu" + "Canale Alfa") a 32 Bit. Leggi: immagini a 16 milioni di colori CON effetti di trasparenza e traslucenza variabile dal completamente opaco al completamente trasparente...

Morale: il ".PNG" è davvero tanta ma tanta roba! :D

A questo punto, veniamo a noi...

"APNG".

Il formato "APNG" è il figliastro del succitato ".PNG". Fondamentalmente si tratta di un'estensione non ufficiale delle specifiche del formato da cui deriva, che gli consentono di mantenere inalterate tutte le caratteristiche del genitore, con in più la possibilità di gestire delle animazioni temporizzate in tutto e per tutto affini a quelle proprie del formato ".GIF 89a".

Le specifiche del tutto vennero concepite per la prima volta nel 2004 da Stuart Parmenter e Vladimir Vukićević della "Mozilla Corporation" per creare e visualizzare le immagini animate necessarie al corretto funzionamento dell'interfaccia dei loro programmi (tipicamente le piccole icone circolari, segmentate e rotanti, utilizzate durante le pause di caricamento da "FireFox"... Avete presente? ;) ).

Nel frattempo...

Dal 2001, gli sviluppatori dell'originale formato ".PNG" si dedicavano all'"MNG" (Multiple-image Network Graphics)...la qual cosa faceva storcere loro non poco il naso nei riguardi delle implementazioni "APNG" di "Mozilla". I padri/padroni del formato criticarono immediatamente l'estensione, asserendo che per questioni di purismo il ".PNG" doveva rimanere un formato mono immagine. Inoltre, la scelta di nascondere i frames di animazione in coda alla prima immagine ".PNG" di una sequenza (in modo che un qualsiasi software non compatibile visualizzasse solamente quella, ignorando tutto il resto...), era ai loro occhi una tecnica grezza, simile all'approccio alla questione messo in atto da ".GIF"...10 anni prima! :) Infine, mossero ulteriori critiche al fatto che un'immagine ".PNG" animata a questo modo non presentasse, di fatto, sostanziali differenze nella struttura del suo formato, risultando di fatto ingannevole per il software a cui veniva sottoposta... Per contro, sostenevano con vigore il loro formato di animazione (il suddetto "MNG"). "Mozilla", nel complesso, reagì positivamente e con signorilità, rendendo i suoi browsers compatibili anche con questo formato... Fino al 2003. Nel 2003 eliminò completamente il supporto all'"MNG" dicendo: «Non ha senso! "MNG" utilizza un decoder enorme, mentre noi stiamo per uscircene con "APNG", che è semplicemente una piccola patch della "libpng"... Sapete che c'è? Usiamo la nostra tecnologia che, per inciso, "MNG" non se lo smazza nessuno... Tiè!!!». :D

L'intera vicenda si "conclude" il 20 Aprile 2007, quando il "PNG Group" rigetta "APNG" come estensione ufficiale...

Nonostante tutto, attualmente pare che il formato si stia lentamente imponendo con la stessa autorevolezza dei blasonati predecessori. :)

"FireFox" ed "Opera" lo supportano già nativamente. "Chrome" lo visualizza grazie ad un'estensione. "Safari"? Boh! "Internet Explorer"? Meglio non domandare, che fino a qualche tempo fa non era in grado di visualizzare nemmeno le ".PNG" standard con le loro traslucenze, figuriamoci delle animazioni!!! :D

Detto questo, avete visto che bello il nuovo logo del blog? "APNG", of course! :D

Ora, per come la vedo io, il formato non è ancora ufficialmente supportato e non esistono molti software adeguatamente attrezzati per manipolarlo come si deve, ma se andrete a seguire i consigli che il buon Marte vi snocciolerà tra non molto, vedrete che vi troverete comunque bene! Fidatevi!

Ricetta per la preparazione di una buona "APNG".

1) Preparazione dei frames dell'animazione: utilizzate un qualunque programma di grafica capace di salvare delle immagini ".PNG" adeguatamente compresse (meno pesano, meglio è ;) ). "The Gimp" va più che bene, ma "Photoshop" è pure meglio. ;)

2) Per quel che concerne l'animazione, il miglior programma che ho trovato sulla rete è "Japng Editor".

"Japng".

Il software è scritto in "Java" e quindi è totalmente multi piattaforma. Gestisce ottimamente i singoli fotogrammi e vi permette di riordinarli con il "drag'n'drop" e di "multi-selezionarli" per applicare editing di massa a gruppi di immagini. Inoltre, il risultato finale è visualizzato in tempo reale in una comoda anteprima. Impeccabile l'animazione, una volta salvata.

Per la cronaca e per completezza, vi segnalo anche "APNG Anime Maker".

"APNG Anime Maker".

"Windows only", ha un'interfaccia decisamente molto meno "user friendly" rispetto al suddetto "Japng".

Io li ho provati entrambi. Con il software in "Java" non ho riscontrato alcun tipo di problema, mentre con "Anime Maker" mi sono imbattuto in differenti problematiche. In primo luogo, la resa delle traslucenze non è sempre impeccabile (in una prova ho ottenuto dei fotogrammi con zone semi-trasparenti tradotte erroneamente in opaco...). Inoltre, la funzione di "ottimizzazione" mi ha completamente stravolto un'animazione (con problematiche sempre inerenti le zone trasparenti/opache/traslucide...).

Ad occhio e croce, credo che il programma "Windows" sia performante per la gestione delle animazioni totalmente opache. Se dovete lavorare con trasparenza e traslucentezza, rivolgetevi a "Japng" senza timore alcuno... :)

3) «Si. "Japng" dici... Ma "Japng" non ottimizza l'animazione!!!».

Premessa. L'ottimizzazione è importante, perchè è un sistema semplice ma banale per ridurre (anche di molto) il peso di un'animazione. In pratica, il software analizza le immagini e le variazioni che intercorrono tra l'una e l'altra e quindi, "automagicamente", elimina dai fotogrammi in sequenza tutte le parti di immagine che rimangono invariate tra l'uno e l'altro... Chiaramente, più minute sono le variazioni, più dati vengono scartati e più l'immagine si riduce di volume...

"Japng" non ha opzioni per l'ottimizzazione. "APNG Anime Maker" ce le ha ma, testate con un'immagine che presentava parti trasparenti e traslucide, ha generato un'animazione totalmente sballata...

C'è una soluzione, al problema?

Certo che si: "APNG Optimizer"!

2 box di testo, 3 bottoni ed una "progress bar"...

Un programmino semplice ma potentissimo. Multipiattaforma pure lui, per giunta. Applicando tutte le ottimizzazioni possibili ed immaginabili, riesce a ridurre la dimensione di una "APNG" prodotta con un qualsiasi programma anche del 50%... Immancabile!!!

OK. Questo è quanto.

Siete o non siete soddisfatti? :P

Cos'è questo QRCode?
Come l'hai realizzato?


2 commenti:

Francesco ha detto...

Quando è da dire, è da dire!
Il logo nuovo è DA-PAURA :)

Marte ha detto...

145 K, per dire! ;)

PS: Riconosci tutti i giochi?! :D

Ritorna in alto! Related Posts Plugin for WordPress, Blogger...