Optimiser les images web

Les images sont très riches en termes d'informations, les photos sont bruitées et la plupart des formats d'images sont déjà compressés. Pour toutes ces raisons, appliquer une compression sans perte aux image est généralement inefficace. La seule solution consiste donc à supprimer des informations de l'image. Ceci est réalisé en leur appliquant des algorithmes de traitement spécifiques pour chaque format d'image.

L'optimisation de l'image est donc une compression avec perte. L'objectif est de réduire efficacement la taille de l'image tout en gardant une bonne qualité.

Nous obtenons une image optimisée dont la taille est réduite mais reste dans le même format: un JPEG optimisé est toujours un JPEG, un PNG optimisé est un PNG et ainsi de suite pour les images GIF et TIFF. Par conséquent, l'optimisation de l'image ne dépend pas des capacités du navigateur.

Dans la plupart des cas, la taille des images au format JPEG peut être divisée par 2 tandis que la perte de qualité est imperceptible.

Optimisation JPEG

Le format JPEG est basé sur une compression avec perte, c'est-à-dire que dès qu'une image est convertie au format JPEG, elle est compressée. Par conséquent, il n'y a aucun moyen de convertir une image dans le JPEG sans appliquer une compression avec perte.

Cependant, cette compression est régie par de nombreux paramètres. L'un des plus importants est le facteur de qualité (quality factor). Ce paramètre, entre autres, peut être modifié dans le profil de traitement d'image.

Compression GIF et PNG

Ces deux types d'images sont représentés au moyen d'une palette. L'optimisation consiste à re-quantifier les couleurs et donc à diminuer le nombre de couleurs dans la palette. De plus, l'image peut être sous-échantillonnée. Ces deux techniques optimisent l'efficacité de la compression qui est intégrée au format de l'image.

PNG prend également en charge l'image au format raster, c'est-à-dire un triplet RVB pour chaque pixel. C'est un format assez lourd. Cependant, la quantification des couleurs aide le backend de compression à réduire la taille de l'image.

Profil d'optimisation

Le profil d'image contient des paramètres communs et faciles à utiliser qui s'appliquent à tous les formats d'image. L'un d'eux, la qualité d'image, peut être choisi parmi les valeurs  : {original, excellent, haut, moyen, bas}. De plus, des paramètres avancés dépendant du format peuvent être définis.

Sélection du profil de traitement d'image

Comme pour tous les autres profils et paramètres, ces profils sont attachés à un profil de gestionnaire de requêtes (QueryHandler Profile) qui est lui-même sélectionné en fonction d'éléments de la requête tels que host, path, query-string ou encore un champs d'entête HTTP particulier (par exemple User-Agent).