Je comprends tout à fait (et j’apprécie !) que cela soit exposé en tant que paramètre du site pour les administrateurs à activer ou désactiver, mais je trouve que cette « fonctionnalité » est, dès le départ, très mal orientée.
Les PNG possèdent deux caractéristiques extrêmement importantes : leur représentation sans perte (et lisible !) du texte et leur prise en charge de la transparence. Ces deux aspects sont des raisons majeures d’utiliser des PNG. En tant qu’utilisateur d’un site Discourse, j’ai téléchargé une image (du texte avec transparence) sur mon forum et j’ai été très déçu de voir qu’elle était automatiquement convertie en JPG. Peu importe, je l’hébergerai ailleurs. Cela a très bien fonctionné jusqu’à ce que @system ne la télécharge, la convertisse et modifie mon post à mon insu, brisant ainsi la transparence et dégradant l’apparence de l’image. Heureusement, je suis également administrateur et j’ai pu rechercher sur le web l’un des fils de discussion ci-dessous qui m’a guidé vers le paramètre qualité de conversion png vers jpg que j’ai pu modifier.
Au minimum, il semble prudent de désactiver cette fonctionnalité si l’image contient de la transparence.
Est-ce que les gens aiment vraiment cette fonctionnalité sur leurs forums ? Elle a été soulevée à deux reprises auparavant, à chaque fois avec des utilisateurs confus ou frustrés par la conversion des PNG. Il semble pertinent de reconsidérer ce paramètre par défaut.
Cela signifie que l’image était beaucoup plus petite en format JPG. Je pense qu’il existe des paramètres du site pour ajuster ce seuil. Jetez un coup d’œil et recherchez dans les paramètres de votre site.
Dans Paramètres/Fichiers, faites défiler jusqu’au 3e élément en partant du bas. Décochez Supprimer les métadonnées de l’image. Juste au-dessus se trouve Qualité png vers jpg. Ajustez le paramètre si nécessaire.
Oui, je comprends tout à fait que cela soit configurable (je l’ai déjà désactivé sur mon site) et je comprends la motivation. Je reste néanmoins convaincu que cette fonctionnalité est erronée dès le départ et qu’il serait logique de modifier le paramètre par défaut.
Voici un exemple : le format PNG est le format par défaut pour les captures d’écran, et c’est tout à fait justifié. Si je fais simplement une capture d’écran de cette fenêtre et que j’essaie de la télécharger, elle est convertie en JPG.
Le fichier original pesait 361 Ko, votre JPG compressé pèse 218 Ko. Certes, il est plus petit, mais nous avons également perdu la transparence — ce qui est affreux pour les utilisateurs d’un thème sombre — et il y a des artefacts autour du texte.
Si, à la place, j’utilise optipng localement pour optimiser le PNG, je me retrouve avec un fichier qui conserve la transparence et un texte net, pour un poids de seulement 219 Ko. Ce fichier restera désormais en PNG lors de son téléchargement :
La conversion du PNG en JPG est très destructrice. C’est une chose de le faire lors du téléchargement ; c’en est une autre de modifier les publications pour le faire automatiquement sur les images externes après la publication. Il existe d’autres moyens d’économiser de la bande passante et de l’espace de stockage, notamment les optimiseurs PNG et même le redimensionnement (avec la fonctionnalité de clic pour voir l’image en taille réelle, il semble logique d’intégrer l’image plus petite dans la publication et de n’afficher l’image en taille réelle qu’au clic).
Il y a de nombreux sujets de personnes essayant d’héberger leurs forums au moindre coût et se plaignant que les images prennent trop de place. Ce type d’administrateur ne se soucie pas de la qualité des images ; tout ce qu’il veut, c’est couper tous les coins et réduire les coûts.
De l’autre côté du spectre, vous avez des personnes vraiment investies dans leurs communautés, qui utiliseront le stockage objet et pourront offrir une bonne qualité à un coût raisonnable.
La discussion ici porte-t-elle sur les paramètres par défaut ? Ou peut-être pourrions-nous essayer de comparer la taille des fichiers JPG à l’optimisation des publications PNG ? Si je me souviens bien, l’optimisation PNG peut être assez coûteuse…
La suppression de cette fonctionnalité n’est pas à l’ordre du jour. Mais ce post semble intéressant :
Que faudrait-il pour que Discourse essaie d’abord d’utiliser optipng, puis utilise la taille « optimisée » résultante pour déterminer s’il doit passer au JPG ? Ou serait-ce trop lent ?
Essayez d’exécuter optipng sur un PNG de 6000x6000 et voyez ce qui se passe. Nous effectuons déjà une forme de cette opération, mais cela bascule rapidement dans un gouffre algorithmique. Et très gravement.
Je ne cherche absolument pas à éliminer cette fonctionnalité — désolé si j’ai été excessif en la qualifiant de « mauvaise fonctionnalité ». Il s’agit des paramètres par défaut. J’ai simplement trouvé ce comportement surprenant et peu utile (surtout après avoir contourné le problème en ajoutant un lien externe, qui a ensuite été automatiquement modifié). Je suis donc venu ici car je pensais qu’il serait bénéfique pour les autres si le comportement par défaut était différent… mais comme pour tous les choix par défaut, les préférences subjectives concernant les compromis entrent rapidement en jeu.
Merci pour ton message bien argumenté, Rafael. J’apprécie cette discussion — comme je l’ai dit au début, je posais sincèrement la question pour savoir si les gens appréciaient cette fonctionnalité.
Il est important de préciser que le choix actuel par défaut du JPEG optimisé n’est pas une décision erronée ! J’adore le PNG et je déteste le JPG pour les graphismes, mais dans ce cas précis, je soutiens pleinement le système actuel (dans les deux sens du terme : autorité et système).
L’équipe de Discourse a fait une évaluation réaliste de ce qui rendra Discourse performant dès la sortie de l’usine :
Le propriétaire-administrateur moyen d’un site ne cherchera pas d’options de qualité d’image. La qualité d’image n’est pas un objectif pour eux, et ils ne considéreront pas le format de fichier d’image par défaut comme un problème. Ainsi, opter par défaut pour un JPG optimisé génère le moins de problèmes et apporte le plus grand bénéfice au plus grand nombre de personnes.
Les amateurs de PNG comme moi-même cherchent toujours des options sur les sites pour préserver la qualité et les informations des images. De même, les sites axés sur les photos et les images auront la qualité d’image comme décision centrale.
Une conséquence pratique de l’approche actuelle sera probablement une transition fluide vers le WebP avec perte. Ensuite, la question du WebP avec ou sans perte se posera probablement dans d’autres sujets ici.
Si vous avez déjà optimisé beaucoup de fichiers PNG, vous savez que le résultat est souvent peu attrayant. Les optimiseurs de PNG prennent une éternité par rapport aux optimiseurs de JPG. Il faut aussi plus de savoir-faire pour créer des images PNG qui peuvent être optimisées de manière la plus efficace, par exemple https://medium.com/@duhroach/reducing-png-file-size-8473480d0476 ou How To Optimize PNG — Smashing Magazine
Une chose que nous aurons finalement, c’est la possibilité pour les utilisateurs d’optimiser leur image avant de la télécharger.
En déléguant le travail de compression à un autre thread (en utilisant des web workers) et en employant les mêmes algorithmes que ceux utilisés sur le serveur (via WASM), l’expérience utilisateur reste satisfaisante.
Que pensez-vous de la désactivation de ce comportement si le PNG présente une transparence ? C’est la perte la plus visible lors du processus de conversion.
Si vous demandez à votre programme de capture d’écran d’arrêter d’ajouter des ombres portées, Discourse cessera probablement de la convertir, car elle sera vraiment constituée de texte et de couleurs unies.
J’ai examiné cela aujourd’hui pour un site qui souhaite conserver tous les fichiers PNG téléchargés au format PNG. Ce que j’ai constaté, c’est qu’après avoir défini png to jpg quality à 100, Discourse convertit toujours les gros PNG en JPG, sauf si le paramètre recompress original jpg quality est également défini à 100. Ce comportement est-il attendu ? Si oui, la description du paramètre recompress original jpg quality doit être mise à jour pour expliquer son impact sur les téléchargements de PNG.