Vale la pena di gzipare le immagini per una riduzione di dimensioni ridotte ma per la compressione e la decompressione ambientale?


38

La maggior parte dei formati di immagine sono già compressi. Ma in effetti, se prendo un'immagine e la comprimo (comprimendola), e quindi confronto quello compresso con quello non compresso, c'è una differenza di dimensioni, anche se non una differenza così drammatica.

La domanda è: vale la pena gzipare le immagini? la dimensione del contenuto scaricato nel browser del client sarà inferiore, ma ci sarà un certo sovraccarico del client durante la decompressione.


2
Se il collo di bottiglia del server è più vicino alla rete che alla CPU, sicuramente. Altrimenti, potrebbero esserci frutti pendenti più bassi.
Konerak,

Risposte:


31

Google fa riferimento a gzip e file di immagine / binari a Ridurre al minimo le dimensioni del payload

Non usare gzip per immagini o altri file binari.

I formati di file di immagine supportati dal Web, nonché video, PDF e altri formati binari, sono già compressi; l'uso di gzip su di essi non offre alcun vantaggio aggiuntivo e può effettivamente renderli più grandi. Per comprimere le immagini, vedi Ottimizzare le immagini .


1
favicon.ico è un'eccezione degna di nota. Le immagini ICO non sono compresse, quindi gzip si comporta molto bene su di esse.
un gatto dal

8

Ciò dipende da ciò che è più importante, dalle risorse di decompressione del client (tempo, potenza di elaborazione, memoria, ecc.) O dalla larghezza di banda della rete.

Esempio 1) I tuoi sistemi client sono molto vicini al server (diciamo su una rete locale) o hanno connessioni ad alta velocità, tuttavia sono molto a bassa potenza (forse sistemi embedded con risorse limitate). NON si vorrebbe alcun overhead lato client (unzziping) e potrebbe facilmente permettersi l'overhead di trasferimento (pochi byte non fanno differenza nel mondo reale su una rete locale).

Esempio 2) I tuoi client sono tutti sistemi ad altissima potenza (diciamo sopra le stazioni di lavoro superiori alla media) ma ce ne sono migliaia e il tuo server ha solo una allocazione limitata della larghezza di banda. In questo scenario gli utenti finali possono facilmente permettersi l'overhead e ogni byte è importante per il server. decomprimi!

Mondo reale) Probabilmente NON è meglio decomprimere le immagini. I sistemi moderni possono comunque permettersi l'elaborazione, se hai aspettative nel mondo reale qualcuno utilizzerà un telefono cellulare o un altro sistema a bassa potenza. Inoltre stai imponendo la restrizione che il ricevitore sarà in grado di decomprimere. La maggior parte delle volte non dovrebbe essere un problema, ma perché limitare qualcuno? Il risparmio di dimensioni sarà banale e il sovraccarico di elaborazione non sarà per nessun sistema. Maggiore è il risparmio dimensionale che dovresti aspettarti un sovraccarico del processore ancora maggiore, quindi ogni volta che risparmi nel trasferimento su qualsiasi tipo di connessione normale hai la possibilità di essere ricreato dal tempo impiegato per elaborare il gzip in qualcosa di utilizzabile.

La tua scommessa migliore IMO è quella di esaminare una maggiore optomizzazione e formati di immagine alternativi. Non tutti i JPEG sono creati uguali. Esempio: salva un'immagine come jpeg in Photoshop, quindi "salva per web e dispositivi" come jpeg, la dimensione del file dovrebbe essere drasticamente diversa con le stesse impostazioni di qualità. Inoltre, l'opzione "Salva per" offre molte più opzioni per la regolazione fine e la dimensione del file. Non aver paura di formati più "datati" come le GIF. Se la tua immagine viene visualizzata correttamente entro i limiti del formato GIF, è probabile che sia ancora molto più piccola e offra vantaggi extra come la trasparenza ...


Grazie per la tua risposta dettagliata. Lo scenario di cui sto parlando è uno scenario che coinvolge milioni di immagini esistenti, parzialmente ottimizzate, su un sito Web di e-commerce. Quindi è chiaro che la massima priorità è il rendering rapido sul lato client e che le macchine dei client sono alimentate in media e meno. Il salvataggio in un formato diverso non è un'opzione [enorme investimento]. La soluzione migliore sarebbe in un caso come questo [così tante immagini esistenti], avere uno strumento in grado di ottimizzare tutti i file jpeg in una cartella. Conosci un tale strumento?

Esiste un'utilità della riga di comando gratuita chiamata jpegtran che ottimizza i JPEG, potrebbe essere in grado di elaborare in batch tutte le immagini in una cartella, quindi vale la pena indagare.
Tim Fountain,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.