web-dev-qa-db-fra.com

GZipped Images - Ça vaut le coup?

La plupart des formats d'image sont déjà compressés. Mais en fait, si je prends une image et la compresse [gzipping], puis que je compare l’image comprimée à l’image non compressée, il existe une différence de taille, même si elle n’est pas aussi dramatique.

La question est: est-ce que cela vaut la peine de compresser des images? la taille du contenu affiché dans le navigateur du client sera plus petite, mais il y aura une surcharge pour le client lors de son décompression.

S'il vous plaît donnez votre avis.

33
charlie

Google fait référence aux fichiers gzip et image/binaires à l'adresse Réduire la taille de la charge utile

N'utilisez pas gzip pour des images ou d'autres fichiers binaires.

Les formats de fichier image pris en charge par le Web, ainsi que les vidéos, les PDF et d’autres formats binaires, sont déjà compressés; L'utilisation de gzip sur ceux-ci n'apportera aucun avantage supplémentaire et pourra même les agrandir. Pour compresser des images, voir Optimiser les images .

27
John Sampson

Cela dépend de ce qui est plus important, les ressources de décompression client (temps, puissance de traitement, mémoire, etc.) ou la bande passante du réseau.

Exemple 1) Vos systèmes clients sont très proches du serveur (par exemple sur un réseau local) ou disposent de connexions à haut débit, mais ils sont de très faible puissance (systèmes embarqués avec des ressources limitées, par exemple). Vous ne voudriez PAS de surcharge du côté client (dépourvu de gzip) et pourriez facilement vous permettre la surcharge de transfert (quelques octets ne font aucune différence dans le monde réel sur un réseau local).

Exemple 2) Vos clients sont tous des systèmes très puissants (par exemple, des stations de travail de bureau au-dessus de la moyenne), mais il en existe des milliers et votre serveur ne dispose que d'une bande passante limitée. Dans ce scénario, les utilisateurs finaux peuvent facilement supporter les frais généraux et chaque octet importe pour le serveur. gzip away!

Monde réel) Vous n'êtes probablement pas mieux de gziper vos images. Les systèmes modernes peuvent bien se permettre le traitement, cependant, si vous avez des attentes réelles, quelqu'un utilisera un téléphone cellulaire ou un autre système de faible puissance. De plus, vous imposez la restriction que le destinataire puisse décompresser. Cela ne devrait pas être un problème la plupart du temps, mais pourquoi limiter quelqu'un? Les économies de taille seront minimes et les frais généraux de traitement ne concerneront aucun système. Plus la taille des économies réalisées est grande, plus il faut prévoir de temps système, de sorte que chaque transfert de transfert sur un type de connexion normal a une chance d'être simplement recréé après le temps nécessaire pour transformer le gzip en un élément utilisable.

Votre meilleur pari, à l’OMI, est d’examiner l’optomisation supérieure et les formats d’image alternatifs. Tous les fichiers JPEG ne sont pas créés égaux. Exemple: enregistrez une image au format JPEG dans Photoshop, puis "enregistrer pour le Web et les périphériques" au format JPEG, la taille du fichier doit être radicalement différente avec les mêmes paramètres de qualité. En outre, l'option "Enregistrer pour" fournit de nombreuses autres options permettant de régler avec précision la qualité et la taille du fichier. Ne craignez pas les formats plus "datés" comme les GIF. Si votre image s'affiche bien dans les limites du format GIF, elle sera probablement beaucoup plus petite et offrira des avantages supplémentaires tels que la transparence ...

6
ima747

Non, en fait, cela pourrait aggraver les choses. De Yahoo Meilleures pratiques pour accélérer votre site Web :

Les fichiers image et PDF ne doivent pas être compressés, car ils sont déjà compressés. Essayer de les gzip non seulement gaspille le processeur, mais peut potentiellement augmenter la taille des fichiers.

5
nthonygreen

Trimage est à peu près aussi performant que possible pour optimiser les images (dépend de OptiPNG, pngcrush et jpegoptim, si je me souviens bien.) J'utilise souvent pngcrush directement dans le cadre d'un déploiement, par exemple.

$ for i in *.png; do pngcrush -rem allb -brute -reduce $i crushed/$i; done;
0
simon