<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Performance web &#187; png</title>
	<atom:link href="http://performance.survol.fr/avec/png/feed/" rel="self" type="application/rss+xml" />
	<link>http://performance.survol.fr</link>
	<description>Quelques mots pour des sites web rapides</description>
	<lastBuildDate>Fri, 18 Jun 2010 12:47:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Pngrewrite sous linux</title>
		<link>http://performance.survol.fr/2009/09/pngrewrite-sous-linux/</link>
		<comments>http://performance.survol.fr/2009/09/pngrewrite-sous-linux/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 10:00:25 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[pngout]]></category>
		<category><![CDATA[pngrewrite]]></category>
		<category><![CDATA[punypng]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=749</guid>
		<description><![CDATA[Je fais encore le tour des outils de compression d&#8217;image pour faire la comparaison et trouver le bon compromis entre ressources consommées et efficacité. Un de mes problème c&#8217;est punypng qui annonce des performances exceptionnelles mais qui ne détaille pas &#8230; <a href="http://performance.survol.fr/2009/09/pngrewrite-sous-linux/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je fais encore le tour des outils de compression d&#8217;image pour faire la comparaison et trouver le bon compromis entre ressources consommées et efficacité. Un de mes problème c&#8217;est <a href="http://www.gracepointafterfive.com/punypng">punypng</a> qui annonce des performances exceptionnelles mais qui ne détaille pas son fonctionnement et ne propose même pas d&#8217;API. Je vérifierai leurs affirmations et tenterai de m&#8217;en approcher mais en attendant je fouille.</p>
<p>Un des outils que je regarde c&#8217;est <a href="http://entropymine.com/jason/pngrewrite/">pngrewrite</a>. La rumeur voudrait qu&#8217;il ne gagne pas grand chose mais qu&#8217;il est capable de le faire même après un passage par optipng ou pngcrush. Bref, un petit ajout rapide, juste pour grappiller un peu plus.</p>
<p>Je vais vérifier tout ça là aussi, mais en attendant le code proposé sur le site officiel ne compile pas sur mon linux récent. Pour ceux qui ont le même problème, la distribution gentoo a <a href="http://riksun.riken.go.jp/pub/pub/Linux/gentoo/media-gfx/pngrewrite/files/pngrewrite-1.3.0-gcc44.patch">un patch</a> disponible. Il suffit de le télécharger là où vous aurez décompacté le code source de pngrewrite et de lancer <kbd>patch -p0 &lt; pngrewrite-1.3.0-gcc44.patch</kbd> puis de taper l&#8217;habituel <kbd>make</kbd>.</p>
<p>Voilà, maintenant vous savez.</p>
<p>J&#8217;aurai bien fait des paquets Ubuntu pour pngrewrite et pngout mais je ne trouve pas la licence du premier et le second interdit explicitement de reditribuer l&#8217;exécutable résultat. Si j&#8217;ai le courage je tenterai peut être des paquets &laquo;&nbsp;tricheur&nbsp;&raquo; qui téléchargent sur Internet lors de leur installation mais ça perd un des intérêts.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/09/pngrewrite-sous-linux/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Punypng, un smushit-like</title>
		<link>http://performance.survol.fr/2009/08/punypng-smushit-like/</link>
		<comments>http://performance.survol.fr/2009/08/punypng-smushit-like/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 10:00:16 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[punypng]]></category>
		<category><![CDATA[smushit]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=691</guid>
		<description><![CDATA[Smushit a disparu, ou presque. On nous parlait d&#8217;ouvrir le code source. Il y avait une API pour faire des tests automatisés. Il était possible d&#8217;optimiser tout un site web. Le site a été repris sur un hébergement interne à &#8230; <a href="http://performance.survol.fr/2009/08/punypng-smushit-like/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.yahoo.com/yslow/smushit/">Smushit</a> a disparu, ou presque. On nous parlait d&#8217;ouvrir le code source. Il y avait une API pour faire des tests automatisés. Il était possible d&#8217;optimiser tout un site web. Le site a été repris sur un hébergement interne à Yahoo! et depuis il y a eu des indisponibilités et plus de régressions que d&#8217;améliorations. Le concept est toujours très intéressant mais finalement très limité.</p>
<p>J&#8217;ai annoncé il y a quelques temps que je comptais développer un outil similaire avec un code source ouvert et au moins une version en ligne de commande pour être intégré dans des mécanismes automatisés de publication (plutôt que d&#8217;attendre publication pour ensuite corriger image par image). Ca viendra, mais ça prend du temps parce que je veux faire les choses bien. Je compare donc tous les outils que j&#8217;ai pu voir pour comparer leurs résultats, avec différentes options. Il faut tenter de prendre un échantillon d&#8217;images représentatif, repérer les avantages et les défauts de chaque outil suivant le format mais aussi le type d&#8217;image (taille, transparence, nombre de couleurs, etc.) puis faire un choix en fonction du temps de traitement (prendre le plus efficace sur la taille finale n&#8217;est pas forcément la meilleure idée). Bref, ça viendra mais ce n&#8217;est pas pour demain.</p>
<p>Par contre vous avez désormais <a href="http://www.gracepointafterfive.com/punypng">punypng</a>. Je n&#8217;ai pas vu de code source, il n&#8217;y a pas de version en ligne de commande, ça n&#8217;accepte pas une URL de page HTML pour en extraire toutes les images (quoi qu&#8217;il doit être assez simple d&#8217;adapter l&#8217;ancienne extension smushit pour cela) mais ils innovent. Ils ont repris l&#8217;idée d&#8217;optimiser les images contenant des pixels avec une information RGB mais totalement transparents, ils font plus de travail sur les jpeg, et ils tentent d&#8217;avoir une interface plus efficace que smushit. C&#8217;est déjà ça et c&#8217;est bien.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/08/punypng-smushit-like/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Astuce EzPublish pour optimiser les images</title>
		<link>http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/</link>
		<comments>http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 10:00:53 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[ezPublish]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=668</guid>
		<description><![CDATA[Je vous avais parlé de plugins pour wordpress et symfony en janvier, puis de nouveau en mars. Ces plugins ne sont généralement pas parfaits. Ils ajoutent un filtre PHP au téléchargement des ressources statiques, ou utilisent des conversions avec perte &#8230; <a href="http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je vous avais parlé de <a href="http://performance.survol.fr/2009/01/plugin-wordpress-et-outils-automatiques/">plugins pour wordpress et symfony en janvier</a>, puis <a href="http://performance.survol.fr/2009/03/encore-des-outils/">de nouveau en mars</a>. Ces plugins ne sont généralement pas parfaits. Ils ajoutent un filtre PHP au téléchargement des ressources statiques, ou utilisent des conversions avec perte sur les images (si je soutiens l&#8217;idée de dégrader un peu les images, le faire automatiquement sans contrôle humain derrière est assez risqué).</p>
<p>Par contre j&#8217;apprécie beaucoup l&#8217;arrivée de ces plugins pour deux raisons. D&#8217;abord ils montrent une prise de conscience globale de la problématique des performance, et surtout ils posent les premières briques d&#8217;une démarche performance intégrée aux outils de publication. Si pour l&#8217;instant rien ne remplace l&#8217;expert et le consultant sur ces sujets, rien ne me ferait plus plaisir que de savoir qu&#8217;on puisse s&#8217;en passer à l&#8217;avenir. Il est finalement anormal que quelqu&#8217;un qui met juste en place un blog ou un CMS ne puisse pas avoir quelque chose de performant <em>par défaut</em>.<span id="more-668"></span></p>
<p>C&#8217;est dans cet esprit que je peux vous parler d&#8217;<a href="http://pwet.fr/blog/optimisation_des_images_generees_par_ez_publish">une petite idée de configuration, cette fois pour le CMS ezPublish</a>. Là aussi ce n&#8217;est pas parfait, il s&#8217;agit juste d&#8217;un filtre pour envoyer les images à travers imagemagick avec des paramètres pour retirer les métadonnées, ça ne concerne que les miniatures, mais ça existe et on en parle. En soi c&#8217;est déjà une réussite.</p>
<p>Si votre outil a lui aussi cette notion de filtre, que ce soit pour les images générées comme les miniatures ou pour les images téléchargées dans l&#8217;outil,  je ne peux que vous encourager à mettre en place ce genre de solutions. J&#8217;aurai tout de même une préférence pour <a href="http://performance.survol.fr/2009/06/pngcrush-ou-optipng/">OptiPNG</a> plutôt que ImageMagick.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Optimisation JPEG (encore)</title>
		<link>http://performance.survol.fr/2009/06/optimisation-jpeg-encore/</link>
		<comments>http://performance.survol.fr/2009/06/optimisation-jpeg-encore/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 10:00:48 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[JHead]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[Jpegoptim]]></category>
		<category><![CDATA[jpegtrans]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=588</guid>
		<description><![CDATA[je vous ai parlé plus d&#8217;une fois de recompression des images PNG. Mais &#8230; et les jpeg ? Les jpeg ont aussi des métadonnées importantes et des informations inutiles dans un contexte web. Vous y trouverez plusieurs version de l&#8217;image &#8230; <a href="http://performance.survol.fr/2009/06/optimisation-jpeg-encore/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>je vous ai parlé plus d&#8217;une fois de <a href="http://performance.survol.fr/avec/png/">recompression des images PNG</a>. Mais &#8230; et les jpeg ?</p>
<p>Les jpeg ont aussi des métadonnées importantes et des informations inutiles dans un contexte web. Vous y trouverez plusieurs version de l&#8217;image à différentes résolutions pour gérer des miniatures, ou même des pistes audio. Stoyan Stefanov a trouvé un gain moyen de 12 % avec des transformations sans pertes sur l&#8217;image elle-même, loin d&#8217;être négligeable.</p>
<p>C&#8217;est <a href="http://sylvana.net/jpegcrop/jpegtran/">Jpegtran</a> dont <a href="http://performance.survol.fr/2008/07/optimisation-jpeg/">j&#8217;avais parlé la dernière foi</a>s, l&#8217;outil utilisé par smushit. En plus de retirer les blocs de méta données (moins précisément que JHead), il permet de retoucher un peu la compression sans toucher à la qualité de l&#8217;image ni subir de pertes par rapport à l&#8217;image originale.</p>
<p>Jpegtran permet aussi de créer<a href="http://yuiblog.com/blog/2008/12/05/imageopt-4"> des images jpeg progressives</a>, ce qui parfois est légèrement plus petit en taille (mais pas tout le temps, et en particulier pas pour les petites images).</p>
<p>Attention toutefois, cela retirera aussi les mentions de copyright éventuelles. Ne le faites que sur vos images ou prévoyez d&#8217;extraire d&#8217;abord cette information pour la réinjecter dans l&#8217;image finale ensuite.</p>
<p><a href="http://www.sentex.net/~mwandel/jhead/">JHead</a> manipule lui aussi les entêtes et les métadonnées EXIF, IPTC et XMP. Je peux vous proposer les options <code>-du -dc -de -di -dx</code>. <a href="http://freshmeat.net/projects/jpegoptim">Jpegoptim</a> propose aussi une optimisation sans perte et la possibilité de supprimer les entêtes EXIF et commentaires. Je n&#8217;ai pas de retour sur la performance de l&#8217;outil. Pour ceux que ça intéresse il y a une option pour diminuer la qualité de l&#8217;image (non activée par défaut).</p>
<p>Maintenant, comme on me le faisait remarquer il y a peu à propos des PNG, la meilleure compression s&#8217;obtient toujours en travaillant l&#8217;image avant de la fixer dans un format particulier. En particulier il est généralement appréciable de gérer <a href="http://www.htmlzengarden.com/2009/06/jpeg_et_compression_par_zones/">la qualité par zones</a>, pour avoir les détails là où c&#8217;est utile.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/06/optimisation-jpeg-encore/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Pngcrush ou Optipng ?</title>
		<link>http://performance.survol.fr/2009/06/pngcrush-ou-optipng/</link>
		<comments>http://performance.survol.fr/2009/06/pngcrush-ou-optipng/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 10:00:56 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[optipng]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[pngcrush]]></category>
		<category><![CDATA[statistiques]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=551</guid>
		<description><![CDATA[Je reprend mon test précédent, plus de 7000 images PNG de taille diverses, beaucoup de 1 à 5 ko, d&#8217;autres jusqu&#8217;à 250 ko pour un total de 450 Mo. Faut-il utiliser pngcrush ou optipng pour recompresser ses images png ? &#8230; <a href="http://performance.survol.fr/2009/06/pngcrush-ou-optipng/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je reprend mon test précédent, plus de 7000 images PNG de taille diverses, beaucoup de 1 à 5 ko, d&#8217;autres jusqu&#8217;à 250 ko pour un total de 450 Mo. Faut-il utiliser pngcrush ou optipng pour recompresser ses images png ?</p>
<p>PNGcrush me donnait 403 Mo (10% de gain) pour 75 minutes avec les options par défaut, et 399 Mo (11% de gain) en le poussant à fond mais en prenant alors entre 8 et 9 heures.</p>
<p>Optipng, avec les options par défaut, arrive à 392 Mo (13% de gain, donc mieux que le maximum de pngcrush) pour deux heures et demie. C&#8217;est long, mais on gagne deux points. À noter tout de même que 10% des fichiers sont légèrement plus gros avec optipng qu&#8217;avec pngcrush, mais en moyenne quand optipng est plus gros c&#8217;est de moins de 1%, alors que quand il est plus petit c&#8217;est plus significatif (et il plus petit dans 90% des cas).</p>
<p>Si il est franchement inacceptable d&#8217;imaginer mettre huit heures pour quelques points, le compromis résultat/temps d&#8217;optipng peut avoir du sens. Si vous n&#8217;êtes pas trop pressés, c&#8217;est l&#8217;outil qu&#8217;il vous faut.</p>
<p>Malgré le mauvais retour des options &laquo;&nbsp;brutes&nbsp;&raquo; avec pngcrush, j&#8217;ai tenté la même chose avec optipng (option -o7). On gagne au plus 2 Mo sur l&#8217;échantillon global, et le temps de calcul dépasse la journée. Autant dire que là aussi, sauf si vous avez une bonne raison, restez avec les options par défaut.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/06/pngcrush-ou-optipng/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Résultats de PNGcrush</title>
		<link>http://performance.survol.fr/2009/06/resultats-de-pngcrush/</link>
		<comments>http://performance.survol.fr/2009/06/resultats-de-pngcrush/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 10:00:20 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[pngcrush]]></category>
		<category><![CDATA[smushit]]></category>
		<category><![CDATA[statistique]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=526</guid>
		<description><![CDATA[Je fais depuis quelques jours des tests avec différents outils d&#8217;optimisation pour images PNG en vue de réimplémenter un smushit-like libre en ligne de commande. Je vous avais déjà parlé de pngcrush, mais sans plus de détails. Ce billet est &#8230; <a href="http://performance.survol.fr/2009/06/resultats-de-pngcrush/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je fais depuis quelques jours des tests avec différents outils d&#8217;optimisation pour images PNG en vue de réimplémenter un <a href="http://performance.survol.fr/2008/10/verifiez-vos-images/">smushit</a>-like libre en ligne de commande. Je vous avais déjà parlé de pngcrush, mais sans plus de détails. Ce billet est là pour répondre à la question &laquo;&nbsp;<em>dois-je utiliser les options pour pousser l&#8217;outil à bout ou dois-je utiliser les options par défaut ?</em>&laquo;&nbsp;.<span id="more-526"></span></p>
<p>Pour y répondre j&#8217;utilise un répertoire de 7000 fichiers de 250 ko maximum avec une moyenne à 60 ko. En réalité il y a pour plus de moitié de fichiers inférieurs à 10 ko (pour ceux que ça intéresse, l&#8217;écart type est de 50 ko). Je n&#8217;ai aucune prétention sur la représentativité de ces images téléchargées de façon automatisée sur le web, mais cela donne au moins un ordre d&#8217;idée.</p>
<p>Sur des fichiers sortis sous Photoshop, de mon expérience et au jugé j&#8217;aurai tendance à dire qu&#8217;un passage par les outils type pngcrush font gagner entre 10 et 30 % sur le poids des images. Sachant que les images représentent généralement plus d&#8217;un tiers du poids global des pages, c&#8217;est non négligeable.</p>
<p>Donc ces 7000 et quelques fichiers prennent 450 Mo sur disque. Passés par pngcrush on arrive à 403 Mo. Un passage par l&#8217;outil nous fait gagner 10 % en moyenne. C&#8217;est moins que ce que je pensais (mais mon échantillon n&#8217;est pas forcément représentatif) mais notable tout de même.</p>
<p>J&#8217;ai tenté plusieurs solutions dans les options, en finissant avec un outrageux &laquo;&nbsp;-l 9 -brute -cc -rem alla -reduce -rem time -rem iTXt -rem tEXt -rem zTXt&nbsp;&raquo; qui n&#8217;est pertinent pour rien d&#8217;autre que pour ce test. Je suis tombé à un poids global de 399 Mo. On gagne 1,5 points par rapport aux options par défaut, à peine 1 % à partir du test précédent. Par contre pour gagner ce 1 %, pngcrush a pris 7 fois plus de temps (520 minutes au lieu de 70). Autant dire que votre processeur pourrait trouver de meilleures occupations.</p>
<p>Résultat : <strong>pngcrush, oui, mais gardez les options par défaut.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/06/resultats-de-pngcrush/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Dégradez les PNG, faites des compromis</title>
		<link>http://performance.survol.fr/2008/07/degradez-les-png-faites-des-compromis/</link>
		<comments>http://performance.survol.fr/2008/07/degradez-les-png-faites-des-compromis/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 10:09:48 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[Image optimization - 7 mistakes]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[Stoyan Stefanov]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=55</guid>
		<description><![CDATA[  Je continue avec l&#8217;excellente présentation de Stoyan Stefanov et je prend la suite de la discussion en commentaire d&#8217;il y a quinze jours. Passez en 256 couleurs Un PNG24 c&#8217;est 16 millions de couleurs. En pratique les PNG on &#8230; <a href="http://performance.survol.fr/2008/07/degradez-les-png-faites-des-compromis/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>Je continue avec <a href="http://performance.survol.fr/2008/07/optimisation-dimages-7-erreurs/">l&#8217;excellente présentation de Stoyan Stefanov</a> et je prend la suite de <a href="http://performance.survol.fr/2008/07/ne-pas-filtrer-les-pngs/#comment-141">la discussion en commentaire d&#8217;il y a quinze jours</a>.</p>
<h3>Passez en 256 couleurs</h3>
<p>Un PNG24 c&#8217;est 16 millions de couleurs. En pratique les PNG on souvent moins de 1000 couleurs. Si vous avez besoin des 16 millions ce que vous avez est probablement une photo, qui devrait être compressée en JPEG. En fait l&#8217;oeil humain n&#8217;est pas si sensible. Passez de 1000 couleurs à 256 couleurs indexées. Si l&#8217;index est bien fait vous ne verrez pas la différence et pour le même prix vous résolvez les problèmes de transparence.<span id="more-55"></span></p>
<h3>Imposez le compromis</h3>
<p>Si j&#8217;en crois les dernières discussions je vais avoir plein de commentaires pour me dire que le graphiste ou le marketing n&#8217;acceptera jamais. Probablement pas, effectivement, du moins pas la première fois. À vous de ne pas accepter non plus. À vous de forcer un compromis avec le graphiste.</p>
<p>C&#8217;est votre expertise, ne la niez pas. Le travail de l&#8217;intégrateur web et sa connaissance du média sont tout aussi importants que ceux du graphiste. La performance n&#8217;est pas plus importante que le reste, mais ce ne doit pas être la dernière roue du carosse de type « faites ce que vous pouvez avec ce qu&#8217;on a fait mais ne nous demandez pas de changer quelque chose ».   </p>
<p>La première fois c&#8217;est difficile, mais le conflit est nécessaire. Une fois que l&#8217;équipe aura compris que vous avez un rôle, une expertise, une valeur ajoutée, les compromis suivants seront plus simple. Parce que finalement, le compromis PNG8 il est assez simple à accepter une fois qu&#8217;on a passé le refus de principe du graphiste et qu&#8217;on s&#8217;y penche sans à priori.</p>
<h3>L&#8217;exception</h3>
<p>Le cas où l&#8217;image doit rester en PNG24 existe, mais je ne suis pas sûr de l&#8217;avoir rencontré jusqu&#8217;à présent. La conversion en JPEG ou PNG8 a toujours été possible. Tout le monde a trop facilement tendance à se croire dans l&#8217;exception qui justifie le PNG24 sur le web, mais commencez par vous dire que ce n&#8217;est pas le cas. D&#8217;ailleurs ça n&#8217;est probablement pas le cas.</p>
<h3>Le web c&#8217;est pour les stagiaires</h3>
<p>Je ne peux m&#8217;empêcher de rappeler un billet rédigé il y a quelques années :<a href="http://www.cybercodeur.net/weblog/articles/art_20040606.php"> Le web c&#8217;est pour les stagiaires</a>. À vous de voir si vous pensez que c&#8217;est vrai, ou pas.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/07/degradez-les-png-faites-des-compromis/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Pensez aux favicon</title>
		<link>http://performance.survol.fr/2008/07/pensez-aux-favicon/</link>
		<comments>http://performance.survol.fr/2008/07/pensez-aux-favicon/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 10:00:48 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[favicon]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[Stoyan Stefanov]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=54</guid>
		<description><![CDATA[Le favicon je pense que vous voyez ce que c&#8217;est : cette petite icône bête et méchante qu&#8217;on voit à côté de l&#8217;URL dans la barre d&#8217;adresse du navigateur. Là où c&#8217;est moins intuitif c&#8217;est que ce favicon peut avoir &#8230; <a href="http://performance.survol.fr/2008/07/pensez-aux-favicon/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Le favicon je pense que vous voyez ce que c&#8217;est : cette petite icône bête et méchante qu&#8217;on voit à côté de l&#8217;URL dans la barre d&#8217;adresse du navigateur. Là où c&#8217;est moins intuitif c&#8217;est que ce favicon peut avoir un impact important dans les performances de votre site.</p>
<p><span id="more-51"></span>Qu&#8217;est ce qu&#8217;il se passe ? à chaque visite le navigateur va chercher cette icône. Le traffic lié à cette icône peut dépasser 10% du traffic total, principalement sur des sites &laquo;&nbsp;de passage&nbsp;&raquo; (9% sur Yahoo! Search <a href="http://performance.survol.fr/2008/07/optimisation-dimages-7-erreurs/">nous dit Stoyan Stefanov</a>). Une petite optimisation aura alors une grande influence. Alors cherchons les problèmes un à un :</p>
<h3>Premier échec</h3>
<p>Vous n&#8217;avez pas fait de favicon.ico, ou cette icône n&#8217;est pas à l&#8217;emplacement cherché par le navigateur. Ce dernier va donc télécharger&#8230; votre page d&#8217;erreur 404, donc probablement quelques kilo-octets de HTML inutiles. On en revient à <a href="http://performance.survol.fr/2008/04/pages-d-erreur/">ce dont nous avions parlé</a> précédemment : <strong>faites des pages d&#8217;erreurs courtes et légères</strong>. Mais surtout, <strong>prévoyez toujours un fichier /favicon.ico</strong> pour éviter de tomber sur la page d&#8217;erreur 404.</p>
<h3>Second échec</h3>
<p>Vous n&#8217;avez pas mis un bête fichier dans /favicon.ico sans vous embêter plus. Le navigateur télécharge ce fichier à chaque nouvelle visite. L&#8217;utilisateur perd du temps, occupe sa file de téléchargements avec une requête inutile, et surcharge votre serveur. <strong>Mettez une entête d&#8217;expiration explicite</strong> sur le favicon. Il change de toutes façons rarement et une expiration à deux mois ne gênera vraiment personne.</p>
<h3>Troisième échec</h3>
<p>Votre favicon contient une version 16x16px, une 32x32px, une 48x48px, toutes en millions de couleurs. Le format permet en effet d&#8217;avoir plusieurs images de différentes tailles, et des couleurs sur 24 bits. Le format 16px est utilisé pour la barre d&#8217;adresse, les suivants peuvent être utilisés quand vous faites glisser un raccourci sur votre bureau. Évidemment le marketing est formel, l&#8217;icône en 24 bits est bien plus jolie. Le résultat c&#8217;est que votre simple icône va finir par faire 5 à 10ko, c&#8217;est à dire beaucoup trop. Sérieux, au delà de 900 octets, vous êtes en faute. <strong>Gardez une icône de 16x16px en 256 couleurs</strong>. Pour ce qui en est fait par les visiteurs, c&#8217;est largement suffisant.</p>
<p>Si votre marketing insiste <strong>faites une détection de navigateur et proposez </strong><strong><a href="http://performance.survol.fr/2008/06/images-png-et-gif/">une image PNG</a></strong> pour les navigateur récents, une icône Microsoft en 16x16px sur 256 couleurs pour les autres (Internet Explorer 6 par exemple). Grâce à la compression vous atteindrez des tailles et des qualités bien meilleures tout en restant en dessous du kilo-octet.</p>
<h3>Quatrième échec</h3>
<p>Vous avez gardé le chemin par défaut de /favicon.ico. Le résultat c&#8217;est que vous n&#8217;utilisez pas votre <acronym title="content delivery network" lang="en">CDN</acronym> et tous les avantages qu&#8217;il procure. <strong>Insérez un lien dans les entêtes de vos pages HTML</strong> pour donner un chemin explicite à votre favicon. Le téléchargement du favicon sera plus rapide (parce que sur le CDN), profitera des entêtes de cache du CDN, et sera sur un domaine tiers qui n&#8217;handicapera pas <a href="http://performance.survol.fr/2008/04/limitation-du-nombre-de-requetes/">les files de téléchargement</a> du domaine principal. Par contre gardez toujours une icône de base sur le chemin par défaut, au cas où et pour les documents qui ne sont pas en HTML (sinon vous retombez dans le premier échec).</p>
<pre><code class="xhtml">&lt;link rel="shortcut icon" 
      type="image/png"
      href="//CDN.example.org/favicon" /&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/07/pensez-aux-favicon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ne pas filtrer les PNGs</title>
		<link>http://performance.survol.fr/2008/07/ne-pas-filtrer-les-pngs/</link>
		<comments>http://performance.survol.fr/2008/07/ne-pas-filtrer-les-pngs/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 10:26:46 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[AlphaImageLoader]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[Microsoft Internet Explorer]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[Stoyan Stefanov]]></category>
		<category><![CDATA[transparence]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=52</guid>
		<description><![CDATA[Utiliser les filtres CSS d&#8217;Internet Explorer n&#8217;est pas une bonne idée. Déjà ils sont inutiles la plupart du temps, quand vous pouvez vous contenter d&#8217;un PNG8 avec une transparence binaire (c&#8217;est à dire la plupart du temps si vous avez &#8230; <a href="http://performance.survol.fr/2008/07/ne-pas-filtrer-les-pngs/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Utiliser les filtres CSS d&#8217;Internet Explorer n&#8217;est pas une bonne idée. Déjà ils sont inutiles la plupart du temps, quand vous pouvez vous contenter d&#8217;un <a href="http://performance.survol.fr/2008/06/images-png-et-gif/">PNG8</a> avec une transparence binaire (c&#8217;est à dire la plupart du temps si vous avez suivi le début de la phrase), mais en plus ils sont lents.</p>
<p>Quand vous faites un <code>filter:AlphaImageLoader</code> dans vos CSS, Internet Explorer l&#8217;exécute à chaque apparition de l&#8217;image dans votre page. Oubliez l&#8217;idée qu&#8217;il met en cache le résultat ou même qu&#8217;il n&#8217;exécute le filtre qu&#8217;une seule fois par image. Si vous l&#8217;utilisez pour une petite icône de présentation qui apparaît vingt fois dans votre page, c&#8217;est vingt exécutions du filtres qui sont faites.</p>
<p>À chaque exécution du filtre le rendu est bloqué, en attente. Sur Yahoo! Search en retirant AlphaImageLoader de la feuille CSS c&#8217;est jusqu&#8217;à 100ms qu&#8217;ils ont gagné (information donnée par Stoyan Stefanov sur <a href="http://performance.survol.fr/2008/07/optimisation-dimages-7-erreurs/">sa dernière présentation</a>).</p>
<p>Faites un compromis avec vous-même et laissez une simple transparence binaire sur un PNG8. Mais si vous n&#8217;y êtes pas prêts, faites au moins en sorte que Internet Explorer 7 et plus n&#8217;utilisent pas le filtre, car eux savent nativement lire les couches alpha des images PNG. Transformer <code>filter:</code> en <code>_filter:</code> devrait suffire.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/07/ne-pas-filtrer-les-pngs/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Images, PNG et GIF</title>
		<link>http://performance.survol.fr/2008/06/images-png-et-gif/</link>
		<comments>http://performance.survol.fr/2008/06/images-png-et-gif/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 17:55:33 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=42</guid>
		<description><![CDATA[Et si on parlait un peu des images ? du point de vue des performances web, toujours. Sur un site classique comme TF1, Amazon, LeMonde, on dépasse les 100 images sur la page d&#8217;accueil, pour un total de près de &#8230; <a href="http://performance.survol.fr/2008/06/images-png-et-gif/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Et si on parlait un peu des images ? du point de vue des performances web, toujours.</p>
<p>Sur un site classique comme TF1, Amazon, LeMonde, on dépasse les 100 images sur la page d&#8217;accueil, pour un total de près de 300ko. Les sites plus au fait des problèmes de performance ont entre 30 et 50 images mais le poids total est encore souvent supérieur à 100ko.</p>
<ul>
<li>TF1 : 108 images pour 300ko</li>
<li>Amazon : 106 images pour 300ko</li>
<li>LeMonde : 102 images pour 250ko</li>
<li>Yahoo : 45 images pour 126ko</li>
<li>Ebay : 30 images pour 160ko</li>
</ul>
<p><span id="more-37"></span></p>
<h3>Les images, une priorité pour la performance</h3>
<p>Pour rappel, sur ma ligne &laquo;&nbsp;classique&nbsp;&raquo; de 2mb/s avec 40ms de latence et deux connexions simultanées par domaine, je vais mettre plus d&#8217;une seconde à tout télécharger. Bien sûr tout ceci c&#8217;est si les 2mb/s sont exploités sans une seule perte et si le serveur répond instantanément. En pratique même sur les superbes lignes ADSL vous mettrez probablement bien deux secondes rien que pour les images. Rappelez vous <a href="http://performance.survol.fr/2008/06/a-quoi-ca-sert/">le billet précédent</a>, deux secondes c&#8217;est énorme.</p>
<p>Il y a largement matière à plusieurs billets. Je ne parlerai pas de parallélisation, de chargement différé ou de sprites. Contentons nous ici de l&#8217;image elle-même.</p>
<h3>Différents formats pour différents usages</h3>
<p>On peut individualiser trois formats d&#8217;images sur le Web : <a href="http://en.wikipedia.org/wiki/JPEG">JPEG</a>, <a href="http://en.wikipedia.org/wiki/Gif">GIF</a> et <a href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a>. Tous sont des formats dits &laquo;&nbsp;compressés&nbsp;&raquo; qui permettent d&#8217;obtenir un fichier de taille réduite.</p>
<p>Le premier est un format prévu pour des photos ou des images avec des tons continus et des millions de couleurs. La compression est étudiée pour ça et en s&#8217;autorisant une faible dégradation de l&#8217;image nous permet de gagner plus de 90%. L&#8217;image ne sera donc pas exactement la même avant et après compression mais la différence de qualité devrait être minime si les réglages sont bien faits.</p>
<p>Les deux autres sont des formats sans perte, l&#8217;image sera la même avant et après compression, au pixel près. Ces formats sont adaptés à de gros aplats avec peu de couleurs, à de petites images et aux images où la qualité au pixel près est importante &#8211; par exemple quand il y a du texte à lire. Ils ont aussi la possibilité avoir de la transparence (et bien d&#8217;autres choses pour le PNG).</p>
<p>Une photo se compressera très mal en PNG, et un logo en 4 couleurs avec une tagline textuelle sera très mal adapté au JPEG. Les images de contenu sont souvent des photos, donc en JPEG. Les élements d&#8217;interface sont généralement le terrain de GIF et PNG.  Utilisez le bon type de format, votre taux de compression s&#8217;en ressentira.</p>
<h3>PNG est meilleur dans tous les cas</h3>
<p>Pour la petite histoire GIF est basé sur une compression sans perte LZW. La perte de qualité vient uniquement que le format n&#8217;accepte que 256 couleurs. C&#8217;est la dégradation préalable en 256 couleurs qui cause la perte que certains constatent, le format n&#8217;y est pour rien. Sur des images adaptées ont peut compter sur une image 4 à 10 fois plus petite que l&#8217;originale en 256 couleurs.</p>
<p>Le format PNG est venu plus tard. La compression est faite via un algorithme de deflate, comme pour gzip, qui permet d&#8217;avoir un <a href="http://www.webreference.com/dev/graphics/compress.html">taux de compression de 10 à 30% plus performant</a>. Les couleurs ont elles aussi des améliorations puisqu&#8217;en plus du format 256 couleurs (nommé PNG8) on peut gérer des images en vraies couleurs (24 bits, PNG24) et même des images en 48 bits (16 bits par couleur, plus que votre écran ne peut en afficher). Enfin, si GIF permettait de définir des zones complètement transparentes et des zones opaques, PNG permet de gérer 65000 niveaux de transparence (on parle de couche alpha).</p>
<p>Le choix entre PNG et GIF est vite fait : vous devriez <strong>toujours utiliser PNG</strong> par rapport à GIF pour une image fixe. Il n&#8217;y a pour ainsi dire aucun contre-exemple significatif. À fonctionnalités égales le fichier PNG sera plus petit. À taille égale le fichier PNG offrira plus de possibilités, par exemple plus de couleurs et donc une meilleure qualité.</p>
<h3>Faites confiance à PNG</h3>
<p>Ne faites pas confiance aux détracteurs de PNG et partisants de GIF :</p>
<p>On vous dit que le PNG fait des fichiers plus gros ? C&#8217;est probablement que votre interlocuteur utilise un PNG en 24 bits (abbrévié PNG24) avec des millions de couleurs : Comparé à un GIF qui utilise seulement 256 couleurs, forcément, ça prend plus de place. Utilisez un PNG8 lui aussi en 256 couleurs et ce dernier reprend l&#8217;avantage. Le PNG peut avoir une meilleure qualité mais si on compare à qualité égale il reste bien le plus performant.</p>
<p>On vous a dit que Microsoft Internet Explorer 6 ne supportait pas la transparence sur les PNG ? En fait il ne supporte pas les couches alpha : Utilisez les mêmes fonctionnalités que GIF, c&#8217;est à dire un PNG8 avec une transparence binaire dans la palette de couleurs, et vous récupérez la compatibilité avec MSIE 6 tout en profitant de la taille réduite.</p>
<p>On vous dit que <a href="http://www.dria.org/wordpress/archives/2008/04/29/633">les couleurs ne sont pas exactes dans PNG</a> ? En fait elles le sont, et <a href="http://hsivonen.iki.fi/png-gamma/">c&#8217;est ça le problème</a> : Les systèmes d&#8217;exploitation utilisent des profils de couleur et des valeur de gamma différentes. PNG permet de stocker ces informations dans l&#8217;image pour éviter que votre création soit claire sur Mac OS X et sombre sur Microsoft Windows. <a href="http://www.libpng.org/pub/png/colorcube/">Les navigateurs ne savent pas tous appliquer correctement ces informations</a> et le même rouge rendra différemment s&#8217;il est dans l&#8217;image PNG et s&#8217;il est dans la CSS, ce qui est assez moche au final. Là aussi, si vous ne mettez pas de profil de couleur et de gamma dans votre PNG, il s&#8217;affichera comme le faisait un GIF : parfaitement. Les logiciels <a href="http://pmt.sourceforge.net/pngcrush/">pngcrush</a> et <a href="http://optipng.sourceforge.net/">optipng</a> peuvent vous aider à retirer ces informations.</p>
<h3>Réduisez la taille de vos images</h3>
<p>Non seulement les sites contiennent trop d&#8217;images mais en plus elles sont bien trop grosses. Dans une majorité des sites, y compris les sites à fort traffic, les images sont insuffisamment compressées. On trouve des petites images d&#8217;interface à plus de 5ko et des illustrations photographiques à plus de 30ko. Est-ce vraiment nécessaire ?</p>
<h4>Utilisez moins de couleurs</h4>
<p>Un format adapté, une bonne compression devraient déjà vous permettre d&#8217;obtenir une majorité d&#8217;images de 1 à 5ko. Au delà, pour une image d&#8217;interface, vous devez vous y attarder. <strong>Pour les éléments d&#8217;interface réduire 256 couleurs</strong> est quasiment toujours une bonne idée. En diminuant encore plus le nombre de couleurs vous pouvez certainement gagner encore un peu à la compression.</p>
<h4>Faites (faire) des compromis sur la qualité de l&#8217;image</h4>
<p>L&#8217;étape suivante c&#8217;est de faire des <strong>compromis sur la qualité</strong>, soit sur la compression JPEG soit sur le nombre de couleurs. C&#8217;est toujours un sujet sensible avec les graphistes et le marketing, mais poussez les dans leurs derniers retranchements jusqu&#8217;à ce qu&#8217;ils vous disent que là non vraiment si on baisse la qualité ce n&#8217;est plus acceptable. Vous pouvez aussi tenter de faire simplifier l&#8217;image elle-même, les aplats de couleurs obtenant une bien meilleure compression. L&#8217;argument majeur c&#8217;est qu&#8217;une image qui n&#8217;est pas parfaite mais qui arrive vite est probablement préférable à une image parfaite mais qui met du temps à venir.</p>
<h4>Tentez différentes compression avec Photoshop</h4>
<p>Photoshop est d&#8217;une grande aide pour les choix de couleur et de qualité. Dans le menu &laquo;&nbsp;save for the web&#8230;&nbsp;&raquo;&#8216; on vous propose de jouer avec tous les paramètres et de constater le poids final de l&#8217;image avant de la sauvegarder. Il est même possible de confronter quatre jeux de paramètres, format et compression côté à côté pour comparer taille et qualité avant de choisir le plus intéressant. Imposer à votre graphiste de toujours passer 3 minutes minimum montre en main à <strong>essayer différentes solutions de compression sur l&#8217;interface Photoshop</strong>.</p>
<h4 id="pngcrush">Améliorez la compression avec OptiPNG</h4>
<p>Ensuite, quand l&#8217;image initiale est au mieux, on peut encore <strong>utiliser des logiciels d&#8217;optimisation</strong> comme pngcrush et optipng déjà cités plus haut. Ils vont retirer toutes les méta données non nécessaires et tester plusieurs pistes de compression pour retenir la meilleure.</p>
<p>Vous trouverez peut être quelques sources qui vous proposent de préférer des sprites horizontaux aux sprites verticaux quand vous avez le choix. GIF appliquait certains algorithmes uniquement sur les répétitions horizontales. PNG fait aussi des opérations verticales ; mes tests ne mettent pas en valeur une différence de plus d&#8217;un ou deux octets entre horizontal et vertical sur ce dernier format.</p>
<h3>L&#8217;impact</h3>
<p>Alors certes, on ne gagnera peut être que 1ko par image en moyenne, parfois moins parfois plus. Mais rappelez vous les chiffres en début de billet. Sur 100 images 1ko par image en moyenne ça fait déjà 100ko. On n&#8217;est pas dans le négligeable, on est dans le prioritaire.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/06/images-png-et-gif/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
