L'Air du Bois est une plateforme Open Source de partage collaboratif ouverte à tous les amoureux du travail du bois. (En savoir plus)

Rejoindre l'Air du Bois Se connecter

MatMatMat

Compression d'image

Salut Boris,

Est ce qu'il y a quelque chose à faire pour aider un peu à la compression des photos sur le site ?
Un format de prédilection, une compression préalable ?

Actuellement j'ai l'impression que c'est un peu rude 😇
Sur mon dernier post, le crénelage et le bruit font la fête. Peut être que je rate une étape ?

J'ai l'impression de passer pour un snob alors que ton site est déjà absolument incroyable.

Merci encore pour tout.

Mat

Mis à jour
Connectez-vous pour ajouter un commentaire.
?

2 réponses

0
Boris Beaulant
( Modifié )

Je vais essayer de répondre à tout ça :)

Ce qu'il faut savoir déjà, c'est qu'afin d'optimiser le stockage et le rendu les images sont traitées directement après leur upload sur le serveur.

  1. Elles sont redimensionnées pour avoir une taille maximale de 1024 x 1024 pixels (en gardant les proportions) pour être stockées en image source. Pour les JPEG, si le EXIF l'indique, elles sont aussi orientées dans le bon sens automatiquement.
  2. Elles sont vidées de toutes leur méta-données (EXIF, etc ...)

Dans cette première étape, il est possible qu'il y ait une perte de qualité si votre image est plus grande que 1024x1024. Si la taille est bonne et bien orientée, l'original est conservé.


Ensuite, un peu partout sur le site, une même image peut être affichée à des tailles différentes. Et afin de limiter la bande passante en sortie du serveur, toutes les images sont "optimisées" en sortie et est généré pour chaque image une miniature aux différentes tailles désirée sur le site à leur première visualisation.

Ce qui signifie qu'à la volée, les PNG ou les JPEG redimensionnés sont recompressés avec des algorithmes qui sont sensé offrir un gain non négligeable sur la taille des fichiers 30 à 70% avec une perte visuelle assez peu perceptible dans la plupart des cas.

Bref, tout ce processus est fait par 3 logiciels : pngquant, optiPNG et jpegoptim


Tout ça pour dire qu'il ne me parait pas impossible que ça implique une certaine perte de qualité. Mais comparé au gain énorme en performance pour le serveur et le temps d'accès aux pages du site, mon coeur ne balance pas trop :)

Après, s'il y a d'autres solutions, c'est toujours ouvert de regarder comment optimiser tout ça et mettre à jour tout ce processus d'optimisation.

Mis à jour
MatMatMat
( Modifié )

Wha, merci pour tous ces détails.

C'est vrai que les photos passe de 3Mo à 150Ko, le gain est incroyable.

Je ne sais pas pourquoi j'ai autant perdu en détail sur les dernières.

Screenshot de l'air du bois et screenshot d'imgur :
imgur.com/a/S1arbNl

La résolution de base est en 4000*2200, c'est peut etre le probleme, je vais essayer de les passer en 1024 avant l'up. Sais-tu en dessous de quelle taille la compression n'a pas lieu ?

Merci encore Boris pour tout ce boulot !

Boris Beaulant
( Modifié )

Hmm, je ne vois pas à quel endroit tu as vu une image aussi floue et crénelée.
C'est sur la page de la création ? Ou quand on visualise l'image en grand ?

MatMatMat

Oui sur la page de la création, en utilisant le zoom plein écran. Je suis sur Chrome en 1440p. Vous ne voyez pas la même chose ?

Boris Beaulant
( Modifié )

Mat Cobois alors c'est "normal" que ça fasse des pixels. Ca reste une image de 1024 qui est étirée à ton écran.
Le lien en sortie du serveur, c'est ça :
bit.ly/2VHpdQy

Ce que je en trouve pas si moche :)

MatMatMat
( Modifié )

Boris Beaulant Ha oui en effet, l'image non étirée est impeccable. J'aurais du commencer par de-zoomer avant de chouiner sur la compression. 😏

Etienne31
( Modifié )

Une autre solution : passer au JPEG2000 :D

Les images n'étant pas naturellement périodiques, la compression est meilleure en utilisant les ondelettes. Enfin, je dis ça, je dis rien :D

Cela dit, j'utilise la décomposition DCT dans ma recherche, alors je ne vais pas cracher dessus :D

Boris Beaulant
( Modifié )

Arf, ça manque d'être mieux supporté par les navigateurs, non ?
caniuse.com/#feat=jpeg2000

Etienne31
( Modifié )

Eh oui, je sais bien !

C'est le drame classique des méthodes qui améliorent que d'un ordre de grandeur et pas de deux.

Sinon, j'ai regardé en détail les images compressées et cela ne me choque pas.

Le screenshot pris par Mat Cobois pour mettre en évidence les effets de la compression n'est pas surprenant. La compression JPEG est réalisée avec perte de données. Ce n'est pas la perte de donnée qui permet la compression, mais c'est plutôt le fait que l'image est représentée dans une base dans laquelle on a besoin de stoker moins de données.

Bon, vulgarisation à part, ce qui éventuellement choque un peu plus, ce sont les images en gros plan puisque la compression est plus visible dans les zones floues (ce qui est normal).

Est-ce à modifier ? Je ne pense pas. C'est un compromis à trouver, et je le trouve bien positionné.

MatMatMat

Et pourquoi on ne squatterait pas un peu les serveurs d'imgur en utilisant des liens externes dans les blocs d'images ?

Je ne me rends pas compte du dev que ça demande.

ça ferait plaisir aux snobs du pixel et allégerait un peu l'espace disque ^^

C'est peut être pas grandiose d’être dépendant d'imgur. Et une perte du droit à l'image ?

Connectez-vous pour ajouter un commentaire.
0
MatMatMat

Après pas mal de test, la compression marche super bien sur certaines photos, j'ai des résultats super fin... et sur d'autres c'est de la purée.

j'ai l'impression que les photos moins bien éclairées avec un peu de grain sont celles qui partent en sucette à la compression.

🤔

Connectez-vous pour ajouter un commentaire.
0 coup de coeur
186 vues
2 réponses
0 vote

Publications associées

0 collection

Licence

Licence Creative Commons