Nouvelles optimisations d'images côté client pour Discourse

Il y a près de 5 ans, nous avons introduit l’optimisation des images côté client pour permettre aux utilisateurs de télécharger des images plus grandes que les limites du site, économiser la bande passante de téléchargement des utilisateurs, libérer de l’espace de stockage pour la communauté et rendre l’expérience utilisateur avec les images sur Discourse globalement plus réactive.

En s’appuyant sur cela, une nouvelle fonctionnalité Changements à venir permet d’ajouter quelques nouvelles fonctionnalités à ce système :

Conversion GIF → WEBP animé

La conversion des gros GIFs était à l’ordre du jour depuis longtemps, et maintenant ils sont convertis en WebP animé, ce qui réduit leur taille moyenne de moitié par rapport au fichier original :

1ueX9IP
(2,5 Mo GIF → 1 Mo WEBP)

output
(10,1 Mo GIF → 4,8 Mo WEBP, ce qui ne serait pas autorisé par défaut dans Discourse en raison de la taille)

Conversion HEIC

Nous avons ajouté le support des fichiers HEIC en 2020 via des conversions côté serveur, et nous prenons désormais également en charge leur traitement directement dans l’éditeur, offrant à l’utilisateur une visibilité sur le résultat de la conversion avant la soumission du message. La conversion côté serveur reste active comme solution de repli si la conversion côté client échoue pour une raison quelconque.


(3,4 Mo HEIC → 650 Ko JPG)

Conversion JXL

Bien que le support des fichiers JXL par les navigateurs ne soit pas encore prêt, les utilisateurs peuvent désormais télécharger des fichiers JXL sur Discourse, qui sont automatiquement convertis en JPG afin que chaque utilisateur puisse voir l’image.


(1,1 Mo JXL → 930 Ko JPG)

38 « J'aime »

Ravi de voir l’optimisation pour l’efficacité ! Mais pourquoi ne pas davantage utiliser WebP, par exemple pour les conversions JXL et HEIC, et surtout pour les conversions/compression PNG ? Je suggérerais AVIF, mais, contrairement à WebP, il n’est pas encore assez largement pris en charge à ma connaissance.

Les fichiers HEIC et JXL avec transparence sont déjà convertis en WebP plutôt qu’en JPG. J’avais envisagé de l’utiliser systématiquement, mais cela aurait nécessité d’ajouter une multitude de paramètres du site pour permettre aux administrateurs d’affiner le comportement, ce qui m’a fait hésiter.

Même chose de mon côté.

Idéalement, j’aimerais que nous donnions aux administrateurs la possibilité de contrôler la compression des images côté client et côté serveur, tout en conservant des paramètres par défaut raisonnables. Je souhaiterais même permettre aux utilisateurs finaux de désactiver la compression à la volée via les options de la fenêtre de modale de téléchargement dans l’éditeur, comme le font Telegram et WhatsApp, mais il n’y a pas d’engouement en interne pour ce travail.

6 « J'aime »