Vous avez soigneusement supprimé le fond de l’image, exporté un PNG transparent, l’avez posé sur un fond sombre — et il y a un halo blanc évident autour des bords du sujet.

Ce n’est pas votre faute et l’outil n’est pas cassé. C’est un détail technique appelé canal alpha. Comprenez-le et vous pourrez résoudre vous-même tout problème de “le bord du PNG transparent a l’air bizarre”.

Cet article explique en 3 minutes :

  • Ce que le canal alpha stocke réellement dans les PNG transparents
  • Pourquoi apparaissent des halos blancs / noirs / colorés
  • Ce qu’est Edge Feather et comment ça marche
  • Cause racine + correctif pour chacun des 4 artefacts courants

D’abord, comprenez une chose : qu’est-ce que le canal alpha

PNG gère la transparence via le canal alpha. Un pixel RGB a 3 canaux (rouge, vert, bleu). Ajoutez un canal alpha (transparence) et vous avez 4 octets par pixel :

  • R=255, G=255, B=255, A=255 → blanc pur, totalement opaque
  • R=255, G=255, B=255, A=0 → blanc pur, totalement transparent (c’est le fond)
  • R=255, G=255, B=255, A=128 → blanc pur, 50% transparent (semi-transparent, se mélangera avec le fond sur lequel il est posé)
  • R=240, G=240, B=240, A=255 → gris clair, totalement opaque

Conclusion clé : le canal alpha n’est pas juste 0 ou 255 ; il peut être n’importe quelle valeur entre 0 et 255. C’est ce que signifient les “pixels semi-transparents”.

D’où vient votre halo

Quand le JPEG (et la plupart des sorties d’appareils photo) enregistre une image, il applique de l’anti-aliasing aux bords du sujet — les quelques pixels les plus externes du sujet sont en réalité “semi-transparents”, en partie sujet et en partie fond. Pour un cercle rouge sur fond blanc :

  • Pixels centraux du cercle : R=255, G=0, B=0, A=255 (rouge totalement opaque)
  • Pixels les plus externes du cercle : R=200-250, G=0-50, B=0-50, A=80-200 (rouge semi-transparent avec une touche de la couleur de fond)
  • Pixels hors du cercle : R=255, G=255, B=255, A=255 (fond blanc)

L’anti-aliasing rend le cercle lisse sur fond blanc.

Mais quand vous ne marquez comme totalement transparents que les pixels avec alpha=0 (en laissant tranquilles ces pixels semi-transparents avec A=80), que se passe-t-il ?

  • Pixels centraux du cercle : alpha reste à 255 → totalement préservés
  • Pixels “rouge semi-transparent” les plus externes du cercle : R=200-250 (ceux-ci sont proches du blanc parce qu’ils sont rouge + blanc mélangés), alpha reste à 80-200 → ils restent, mais comme leur RGB est proche du blanc, en les posant sur un fond sombre ils ressemblent à un halo blanc
  • Pixels hors du cercle : alpha passe de 255 à 0 → transparents

Voilà votre halo blanc. Ce sont essentiellement les “pixels de bord semi-transparents” laissés par l’anti-aliasing, dont le RGB se trouve proche de la couleur de fond, donc ils deviennent visibles quand vous supprimez le fond.

4 artefacts, 4 causes racines

Artefact 1 : halo blanc (fond clair)

Cause racine : sujet sur fond clair ; les pixels de bord anti-aliasés ont un RGB proche de la couleur de fond (blanc / gris clair).

Scénario typique : photos de produit à fond blanc, portraits à fond blanc, logos à fond blanc.

Solution : soit rendre totalement transparents ces pixels semi-transparents, soit faire en sorte que leur RGB suive la couleur unie du sujet. L’implémentation la plus simple est Edge Feather : transition linéaire de l’alpha de 255 à 0 à la frontière sujet/fond, tout en tirant le RGB vers la couleur unie du sujet.

Le Feather par défaut de Piick = 1 px résout déjà la plupart des halos blancs. Si vous les voyez encore :

  • Montez le Feather à 2-3 px (feathering plus agressif)
  • Réexportez depuis une source de meilleure qualité (la compression JPG amplifie la distorsion de l’anti-aliasing)
  • Option nucléaire avec ImageMagick : convert input.png -fuzz 5% -transparent white output.png

Artefact 2 : halo noir (fond sombre)

Cause racine : même chose que le halo blanc, mais les pixels de bord anti-aliasés ont un RGB proche d’un fond sombre (noir / gris foncé / bleu foncé).

Scénario typique : photos de produit tech à fond noir, portraits à fond sombre, photos en mode sombre.

Solution : identique au halo blanc ; changez juste -transparent white en -transparent black dans la commande ImageMagick.

Artefact 3 : frange de couleur (bord du sujet teinté par la couleur du fond)

Cause racine : l’algorithme marque comme totalement transparents les pixels “assez proches du fond”, mais les pixels de bord anti-aliasés portent encore la couleur de fond dans leur RGB, donc en les posant sur n’importe quel nouveau fond on voit la couleur de fond d’origine.

Scénario typique : prises de vue sur fond vert avec keying imparfait (éclairage inégal, débord vert sur les bords des cheveux) ; en supprimant le vert, les cheveux restent teintés de vert.

Solution : plus difficile que les halos blancs. Il faut gérer alpha et RGB de manière coordonnée. Le Feather de Piick à 1-2 px résout les cas légers ; les cas graves nécessitent une solution IA cloud (la segmentation sémantique de remove.bg est spécifiquement entraînée sur les bords de cheveux).

Artefact 4 : bords irréguliers (jagged)

Cause racine : PNG est une bitmap ; les bords sont pixel par pixel. L’algorithme binarise directement (0 ou 255) sans état intermédiaire.

Scénario typique : logos vectoriels après suppression de fond, textes typographiques après suppression de fond.

Solution : à l’inverse des halos blancs — n’utilisez pas Feather. Les bords du logo doivent rester nets ; Feather=0. Si les irrégularités persistent, l’image source a une résolution trop faible. Mettez d’abord la source à l’échelle 2-4× (avec un upscaler IA), puis supprimez le fond.

Qu’est-ce qu’Edge Feather et comment ça marche

Avec les causes racines clarifiées, Edge Feather devient intuitif.

Edge Feather est une distance d’adoucissement (en pixels) au niveau de la bordure.

  • Feather=0 : aucun adoucissement. Chaque pixel est soit 100% sujet, soit 100% fond. À utiliser pour les logos, marques, éléments d’UI.
  • Feather=1 (par défaut) : sur une transition de 1 pixel, l’alpha passe linéairement de 0 à 255 (avec le RGB du bord ajusté en conséquence). Adoucissement presque imperceptible, mais les artefacts d’anti-aliasing se réduisent clairement.
  • Feather=2-3 : transition de 2-3 pixels, “bande semi-transparente” visible aux bords du sujet. Pour les sources avec anti-aliasing fort (anciennes photos, sources de basse qualité).
  • Feather=4+ : trop doux ; le sujet a l’air “flou”. Ne pas dépasser 4.

Sous le capot :

Pour les pixels de bord (où le masque passe de 0 à 255), la fonction featherMask de Piick :

  1. Détecte les pixels de bord
  2. Vers l’extérieur depuis le bord (direction fond) 1-3 pixels, l’alpha monte linéairement de 0 à 128
  3. Vers l’intérieur depuis le bord (direction sujet) 1-3 pixels, l’alpha descend linéairement de 255 à 128
  4. Crée une bande de transition douce au milieu

C’est une implémentation unidimensionnelle simple qui fonctionne suffisamment bien. Le “Contour progressif” de Photoshop utilise la convolution de flou gaussien, qui est de meilleure qualité mais aussi beaucoup plus coûteux : pour le traitement par pixel en lots, la rampe linéaire simple de Piick offre le meilleur rapport qualité/performance.

Recommandations opérationnelles

Commencez par les valeurs par défaut de Piick (Tolérance=30, Feather=1), puis regardez le résultat pour décider des ajustements :

Ce que vous voyezAjustez FeatherAjustez Tolérance
Halo blanc/noir (fond clair)Montez à 2-3-
Bords du sujet “mous”Baissez à 0-
Le sujet se fait manger-Baissez à 15-20
Le fond n’est pas supprimé-Montez à 40-50
Mèches de cheveux manquantes-Essayez 50-60 + Feather=1
Bords teintés par la couleur du fondMontez à 2-3 + passez au cloud-

Le sweet spot de Feather est 1-2 px. En dessous de 1, aucun effet visible. Au-dessus de 3, le sujet a l’air mou.

FAQ

Est-ce que monter Feather au max donne les bords les plus propres ?

Non. Feather=4 rend le sujet flou et les halos blancs empirent (la bande transparente s’élargit).

Mes bords sont déjà parfaits, ai-je besoin de Feather ?

Non. Feather=0 avec sortie PNG convient. Mais le Feather par défaut de 1 n’affecte presque pas la netteté, donc vous pouvez le laisser par défaut.

Est-ce que JPG a un canal alpha ?

Non. JPG ne supporte pas la transparence. Tous les pixels semi-transparents sont composés sur le fond pendant l’encodage (en supposant blanc). C’est pourquoi supprimer le fond d’images basées sur JPG laisse toujours des halos blancs : l’information d’anti-aliasing est déjà perdue.

Solution : supprimez d’abord le fond de la source JPG (sortie PNG), puis convertissez en JPG avec une couleur de fond spécifique via le convertisseur de formats.

Les images vectorielles (SVG, AI, PDF) ont-elles besoin de Feather ?

Non. Les graphiques vectoriels sont des courbes définies mathématiquement sans “bords de pixel”. Lors de l’export en PNG, le moteur de rendu applique un anti-aliasing approprié, généralement plus propre que la suppression de fond sur bitmap.

Y a-t-il des outils qui choisissent Feather automatiquement ?

Certains outils avancés (le “Sélectionner et masquer” de Photoshop) ajustent automatiquement le feather selon le contenu de l’image. Piick V1 utilise des curseurs manuels, mais laisse la place à une V2 qui s’ajusterait automatiquement selon les caractéristiques de l’image.

Résumé en une ligne

Halos blancs / noirs / colorés = pixels semi-transparents anti-aliasés mal gérés. Edge Feather est le levier principal pour y remédier. 1 px par défaut couvre 90% des cas. Pour les sources de mauvaise qualité ou scènes complexes, montez à 2-3 px ; si ça ne suffit toujours pas, passez à une solution cloud.

Ouvrez piick.cc/tools/background-remover et faites glisser le curseur Edge Feather de 0 à 4 : vous comprendrez immédiatement ce qu’il fait.