← Retour au blog

Compresser des PNG transparentes par lot sans abîmer les bords du logo

Viens de finir un kit d'assets pour ta boutique en ligne. Seize PNG transparents — logos en trois tailles, quelques badges d'angle, quelques designs de stickers. Ils sont parfaits dans Figma. Tu les exportes en PNG avec transparence activée, poses le dossier sur ton bureau et vérifies la taille totale : 2,4 Mo. Pour seize petits graphismes. Sur mobile, ce sont deux secondes de chargement avant que le reste de la page commence.

Alors tu les passes dans un compresseur. Les tailles chutent drastiquement — super. Mais ensuite tu uploades une version compressée sur ta page boutique et tu remarques quelque chose d'anormal sur les bords du logo : une fine ligne blanche là où il y avait un dégradé doux. Ou des marches d'escalier dentelées le long d'une courbe. C'est le piège de compression des PNG transparentes et presque personne n'en parle car la plupart des outils cachent le problème derrière un aperçu trop petit pour le voir. Je vais te montrer exactement ce qui se passe sous le capot, te donner des chiffres réels, et t'indiquer quelle approche convient à quel type d'asset.

Les chiffres : un vrai logo transparent, trois chemins de compression

J'ai construit une image test spécifiquement pour ça : une composition 1200×1200 pixels avec un badge logo central, un halo estompé (alpha doux) et plusieurs stickers à bords durs dans les coins. Elle utilise RGBA — quatre canaux au lieu de trois — donc chaque pixel porte rouge, vert, bleu et opacité. Je l'ai passée par trois chemins et j'ai tout mesuré :

MéthodeTailleÉconomieAlpha doux préservé ?
Original (RGBA non optimisé)156,6 KoOui — 649 298 pixels alpha partiel
Réencodage lossless (optimize uniquement)126,0 Ko−19,6%Oui, pixels identiques
PNG8 quantifié (256 couleurs, alpha 1-bit)11,3 Ko−92,8%Non — zéro pixel alpha partiel
Même logo transparent avant (156,6 Ko avec halo doux) et après compression PNG8 (11,3 Ko avec halo de bord dur). Zoom du bord montre la transition doux-dur.
Un logo transparent de 156,6 Ko compressé à 11,3 Ko via PNG8 — réduction de 92,8%. Le panneau gauche montre l'original avec son halo estompé s'estompant doucement vers la transparence. Le panneau central montre le résultat PNG8 : le halo s'est transformé en anneau dur car l'encodeur a arrondi chaque valeur alpha partielle à totalement opaque ou totalement transparent. Le panneau droit zoome sur le bord — on voit le motif en escalier où le dégradé doux est devenu binaire allumé/éteint. Les formes à bords durs (badge, étoile, stickers) semblent identiques. Seule la zone de halo souffre.

Ce que fait PNG8 vraiment (et pourquoi il abîme les bords doux)

PNG8 signifie PNG indexé. Au lieu de stocker une valeur RVB séparée pour chaque pixel, l'encodeur construit une palette — jusqu'à 256 couleurs au total — puis chaque pixel est juste un nombre pointant vers une entrée de palette. C'est drastiquement plus petit car un octet par pixel remplace trois (ou quatre avec alpha).

Le problème vient de comment PNG8 stocke la transparence. Dans un PNG indexé, chaque entrée de palette reçoit une seule valeur de transparence. La plupart des encodeurs arrondissent ça à totalement transparent ou totalement opaque — pas de place pour "37% semi-transparent". Chaque pixel qui était semi-transparent (bords anti-aliasing, ombres portées, halos, fondus progressifs) saute vers l'un des deux extrêmes.

Dans mon image test, l'original avait 649 298 pixels avec valeurs alpha intermédiaires — tout le halo doux plus l'anti-aliasing autour du cercle et de l'étoile. Après conversion PNG8 utilisant le même moteur que notre site (upng-js avec quantification médiane-cut, arrondi alpha à 1-bit), ce nombre est tombé exactement à zéro. Chacun de ces 649 mille pixels est devenu 255 (opaque) ou 0 (transparent). Visuellement, c'est le halo que tu vois dans le panneau central ci-dessus : un anneau dur où le halo s'estompait doucement auparavant.

Est-ce que ça compte ? Ça dépend entièrement de ce qu'il y a dans ton PNG transparent.

Quand PNG8 est parfaitement sûr (utilise-le agressivement)

Si ton image transparente ne contient que des formes à bords durs — logos couleur plate, icônes plates, stickers carrés ou arrondis, découpages produits photographiés contre un fond blanc pur — PNG8 est pratiquement de l'argent gratuit. Le canal alpha n'a rien de doux à ruiner, et tu obtiens une réduction de taille de plus de 90% avec zéro changement visuel.

Quand PNG8 va te mordre (évite ou contourne)

Si ton asset tombe dans cette catégorie, tu as trois options :

  1. Aplatis l'effet d'abord. Fusionne la couche de halo/ombre sur une couleur de fond solide, puis exporte en PNG ou JPEG non transparent. Maintenant tu n'as plus d'alpha à ruiner. Compresse normalement. C'est comme ça que la plupart des professionnels gèrent les assets de production finaux.
  2. Utilise uniquement l'optimisation lossless. Saute PNG8. Passe le fichier par un optimiseur PNG lossless (OxiPNG, zopfli) qui réencode le flux deflate plus efficacement sans toucher aux valeurs de pixels. Tu économiseras peut-être 15–25% au lieu de 93%, mais chaque pixel reste exactement comme conçu. Suffisant pour images héro et logos d'en-tête où la qualité n'est pas négociable.
  3. Accepte et vérifie en taille d'affichage.Compresse en PNG8, télécharge le résultat, ouvre-le côte à côte avec l'original à la taille réelle où il apparaîtra sur ta page web (pas zoomé). Si le halo est invisible à 1:1, utilise-le. La plupart d'utilisateurs voient des logos à 80–200 px de large où un halo de 2 px est sous le seuil de perception. Mais ne suppose pas — vérifie.

Flux de travail par lot : compresser 20 PNG transparentes d'un coup

Une fois que tu sais quelle méthode va avec quel asset, l'étape de compression prend environ dix secondes. Voici mon flux :

  1. Rassemble tes PNG transparentes. Mets-les tous dans un dossier. Mélange de logos, stickers, découpages — peu importe ce qui doit être réduit.
  2. Vérifie chacun rapidement à 200% de zoom. Cherche des bords doux, halos ou zones estompées près des limites de forme. Trie en deux piles : "que des bords durs" et "a alpha doux".
  3. Dépose tout le lot dans un compresseur navigateur.L'outil que j'utilise accepte jusqu'à 20 fichiers à la fois, tourne intégralement dans ton navigateur (rien ne monte sur serveur), et détecte le format automatiquement. Upload les 20 en un seul glisser-déposer.
  4. Laisse le moteur tourner PNG8.Pour la pile bords durs, la sortie par défaut est déjà optimale. Pour la pile alpha doux, prévisualise chaque résultat à 1:1 avant de décider de le garder ou passer en mode lossless.
  5. Télécharge le lot.Un clic télécharge tout comme fichiers individuels. Les noms de fichiers restent intacts. Pose directement dans ton CMS ou uplodeur plateforme.

Temps total depuis dossier ouvert jusqu'à téléchargement fini : environ 30 secondes pour un lot de 20 fichiers. Sans installation de logiciel. Sans création de compte. Et critiquement, tes fichiers originaux n'ont jamais quitté ton appareil — la compression s'est produite localement dans ton onglet navigateur.

Erreurs qui gaspillent des heures (j'ai fait la plupart)

Guides connexes pour situations spécifiques

Besoins de PNG transparent peuvent se connecter à d'autres tâches d'image. Ces guides couvrent les sujets adjacents en profondeur :

En résumé

Les PNG transparentes sont surdimensionnés parce que RGBA ajoute un quatrième canal et que la plupart d'outils design les exportent non optimisés. La compression PNG8 (quantification palette médiane-cut avec alpha 1-bit) peut les réduire de plus de 90% dans un onglet navigateur sans installation logicielle. La seule chose à surveiller est l'alpha doux — halos, ombres portées, texte anti-aliasing — que PNG8 transforme en bords durs. Si tes assets n'en ont aucun, compresse sans hésiter. S'ils en ont, aplatit l'effet, utilise le mode lossless, ou vérifie en taille d'affichage que le halo est invisible.

Ton logo mérite d'être net sur chaque écran. Il mérite aussi de charger vite. Les deux objectifs sont atteignables — tu as juste besoin de choisir le bon chemin pour l'asset spécifique que tiens en main.

Compresse tes PNG transparentes maintenant

Dépose jusqu'à 20 PNG transparentes d'un coup. Le mode PNG8 les réduit de 90%+ tout en préservant la transparence pour les logos à bords durs. Prévisualise avant téléchargement. Gratuit, tourne entièrement dans ton navigateur, rien ne quitte ton appareil.

Comprimer images gratuit →
À propos de l'auteur : Chuan
Développeur indépendant qui a construit CompactJPG après avoir vu des designers lutter avec des PNG transparentes trop volumineux pour le web ou ruinés par des convertisseurs JPEG. Tout tourne dans ton navigateur car tes assets de marque appartiennent à ton appareil, pas à celui de quelqu'un d'autre.