Chaque pixel d'une image ordinaire est décrit par trois nombres : sa quantité de rouge, de vert et de bleu. Cela suffit pour dire de quelle couleur est le pixel, mais pas si l'on peut voir à travers. La couche alpha est un quatrième nombre par pixel qui fait exactement cela : elle stocke l'opacité, de totalement transparent à totalement opaque.
Quand on parle d'un « PNG avec fond transparent », on parle d'une image avec une couche alpha dont les pixels du fond ont un alpha de zéro. Ce guide explique comment fonctionne ce nombre, les deux façons dont les logiciels le stockent, pourquoi les contours se dégradent et comment vérifier ce que contient vraiment un fichier.
RGBA : quatre couches par pixel
MDN définit simplement la couche alpha : les couleurs sont faites de couches (rouge, vert et bleu), et pour décrire une couleur « à travers laquelle on peut voir l'arrière-plan dans une certaine mesure », on ajoute une quatrième couche. Une image avec les quatre s'appelle RGBA.
La valeur peut s'écrire de plusieurs façons, qui veulent toutes dire la même chose :
| Notation | Totalement transparent | À moitié transparent | Totalement opaque |
|---|---|---|---|
| Entier 8 bits (la plupart des fichiers image) | 0 | 128 | 255 |
| Entier 16 bits (PNG 16 bits) | 0 | 32768 | 65535 |
| Fraction (calculs de composition, CSS) | 0 | 0.5 | 1 |
| Pourcentage (CSS) | 0% | 50% | 100% |
Suffixe hexadécimal (CSS #rrggbbaa) | 00 | 80 | ff |
La spécification PNG le formule précisément : une valeur alpha de zéro correspond à la transparence totale, la valeur maximale pour la profondeur de bits à l'opacité totale, et les valeurs intermédiaires à des pixels partiellement transparents « qui peuvent être composés sur une image d'arrière-plan ».
Ces valeurs intermédiaires sont l'essentiel. Un bon détourage ne se résume pas à « sujet opaque, fond transparent ». Les pixels du contour, surtout dans les cheveux, la fourrure, le tissu, le verre et le flou de bougé, sont partiellement transparents, et c'est ce qui rend le sujet naturel sur un nouveau fond au lieu de donner l'impression d'avoir été découpé aux ciseaux.
Comment un pixel transparent est dessiné
Quand une application place votre image par-dessus autre chose, elle mélange chaque pixel avec ce qui se trouve derrière. La spécification W3C Compositing and Blending donne la formule de base :
result = Cs x as + Cb x ab x (1 - as)
Cs, as = color and alpha of your image (the source)
Cb, ab = color and alpha of what is behind it (the backdrop)Dans le cas courant d'un arrière-plan opaque, cela devient une moyenne pondérée. Un pixel d'alpha 0,3 apporte 30 % de sa propre couleur et laisse passer 70 % de l'arrière-plan.
Alpha direct ou prémultiplié
Il existe deux façons de stocker la couleur d'un pixel partiellement transparent, et les confondre est une source classique de franges sombres ou claires.
L'alpha direct (aussi appelé non associé ou non prémultiplié) stocke la couleur comme si le pixel était totalement opaque, et garde l'opacité à part. Un pixel rouge pur à moitié transparent est stocké en rouge 255, vert 0, bleu 0, alpha 128.
L'alpha prémultiplié (aussi appelé associé) stocke la couleur déjà multipliée par l'alpha. Le même pixel est stocké en rouge 128, vert 0, bleu 0, alpha 128. Comme le dit la spécification PNG, une telle image « est déjà composée sur un fond noir ».
Le choix dépend du format et du logiciel :
- Le PNG utilise toujours l'alpha direct. La spécification le dit explicitement, et note que cela permet à un éditeur de modifier facilement la transparence d'une image.
- Les pipelines graphiques, moteurs de jeu et outils de composition vidéo travaillent souvent en alpha prémultiplié en interne, car les calculs de mélange sont plus simples et le filtrage se comporte mieux.
Les problèmes commencent quand un programme écrit des valeurs prémultipliées et qu'un autre les lit comme directes. Les couleurs des contours ressortent trop sombres, avec un fin liseré noir. Dans l'autre sens, les contours sont trop clairs. Si vous voyez un bord sombre systématique sur tous les détourages d'un même outil, une erreur de prémultiplication est la première chose à soupçonner.
Pourquoi les détourages ont des halos
Un halo est un liseré visible autour du sujet qui ne lui appartient pas. Il y a quatre causes courantes, chacune avec sa solution.
1. L'ancien fond est incrusté dans les pixels du contour
Un appareil photo ne capture jamais une frontière nette. Une mèche de cheveux devant une haie verte produit des pixels mi-cheveux, mi-haie. Si le détourage garde la couleur d'origine de ces pixels et les rend seulement semi-transparents, le vert reste mélangé. Posé sur du blanc, le sujet a alors une légère lueur verte.
La solution est la décontamination des couleurs : estimer la vraie couleur de premier plan de chaque pixel du contour et l'écrire à la place. Photoshop appelle cela Décontaminer les couleurs, dans l'espace de travail Sélectionner et masquer, et la bibliothèque open source rembg a une option decontaminate qui fait la même chose. Elle modifie les couleurs du contour, jamais la forme du masque.
2. Le masque est trop dur
Si le masque ne contient que des pixels totalement opaques ou totalement transparents, les contours paraissent crénelés, et l'anticrénelage de la photo d'origine laisse une ligne d'un pixel de la couleur du fond autour du sujet. Les sujets doux comme les cheveux ont besoin d'un masque doux avec de vraies valeurs intermédiaires.
3. Des couleurs cachées dans les pixels transparents
Dans un fichier en alpha direct, un pixel d'alpha zéro a toujours des valeurs de rouge, de vert et de bleu. On ne les voit pas, mais redimensionner ou flouter une image mélange les pixels voisins, et si ces couleurs cachées sont blanches ou noires, elles débordent sur le contour visible. Les bonnes bibliothèques d'images l'évitent en prémultipliant avant le redimensionnement puis en revenant en arrière ensuite.
4. L'image a été aplatie sur une couleur
Les GIF et les PNG à palette ne gèrent souvent qu'une transparence tout ou rien, donc les outils lissent le contour sur une couleur de cache, généralement le blanc, avant d'enregistrer. L'image rend bien sur du blanc et montre une frange blanche sur tout fond plus sombre. Si votre détourage doit aller sur des fonds sombres, exportez-le plutôt avec un alpha complet.
Masques, caches et alpha : le vocabulaire
Ces mots se recoupent et sont employés de façon approximative. Voici leur sens habituel :
- Couche alpha : les valeurs d'opacité stockées dans un fichier image, une par pixel.
- Masque : une image en niveaux de gris qui contrôle quelles parties d'une autre image sont visibles. Dans les masques de fusion de Photoshop, le blanc révèle et le noir masque, et les gris sont partiellement visibles. Un masque se modifie sans toucher aux pixels d'origine, c'est pourquoi les professionnels suppriment les fonds avec des masques plutôt qu'en gommant.
- Cache (matte) : le terme du cinéma et de la composition pour la même idée, une image en niveaux de gris qui définit ce qui est conservé. Le « matting » est le problème du calcul de caches doux et précis pour des contours difficiles comme les cheveux.
- Trimap : une carte grossière en trois zones (premier plan certain, arrière-plan certain, incertain) que certains algorithmes de matting utilisent comme point de départ.
- Masque binaire ou dur : uniquement du noir et du blanc, sans gris. Convient aux boîtes et aux logos, mal aux cheveux.
- Détourage : le résultat final, les couleurs du sujet plus une couche alpha.
Un masque et une couche alpha contiennent la même information. Beaucoup d'outils permettent d'exporter l'un ou l'autre : un PNG transparent avec l'alpha intégré, ou une image de masque noir et blanc séparée à appliquer vous-même dans un éditeur ou un outil vidéo.
Quels formats peuvent stocker l'alpha
| Format | Prise en charge de l'alpha |
|---|---|
| PNG | Alpha complet (8 ou 16 bits), ou une seule couleur de palette transparente |
| WebP | Alpha complet, en mode sans perte comme avec perte |
| AVIF | Alpha complet |
| GIF | Tout ou rien : une couleur de palette marquée comme transparente |
| JPEG | Aucune |
Pour une comparaison complète de ces formats, voir PNG, JPEG ou WebP.
Comment vérifier si une image a de la transparence
Un fichier qui se termine par .png ne prouve pas la transparence. Beaucoup de PNG sont totalement opaques, et certaines images « transparentes » trouvées en ligne sont des JPEG avec un damier gris et blanc peint dans les pixels. Voici des méthodes fiables pour vérifier.
À l'œil
Placez l'image sur un fond sombre et sur un fond clair, par exemple dans une diapositive ou un outil de design. Un vrai détourage laisse voir la couleur du fond autour du sujet dans les deux cas. Si vous voyez encore un damier, il fait partie de l'image, ce n'est pas de la transparence.
Avec ImageMagick
# Does the file have an alpha channel at all?
identify -format "%A\n" photo.png
# Is it fully opaque anyway? (true means no visible transparency)
identify -format "%[opaque]\n" photo.png%A indique la couche de transparence (le mot exact affiché diffère entre ImageMagick 6 et 7), et %[opaque] calcule si chaque pixel est totalement opaque. Vous voulez une couche alpha et false.
Avec Python et Pillow
from PIL import Image
im = Image.open("photo.png")
print(im.mode) # RGBA or LA means an alpha channel
print(im.has_transparency_data) # True if the file carries any transparency info
if "A" in im.getbands():
lo, hi = im.getchannel("A").getextrema()
print("alpha range:", lo, hi) # lo == 255 means nothing is transparentLa vérification des extrêmes repère le cas fréquent d'un fichier RGBA dont tous les pixels sont opaques.
Quand la plateforme ignore l'alpha
Certains sites suppriment ou ignorent la transparence. Etsy indique que les PNG transparents ne sont pas pris en charge et que les zones transparentes peuvent s'afficher en noir, et des marketplaces comme Amazon et Walmart veulent de toute façon des images principales sur blanc pur. Dans ces cas, aplatissez vous-même le détourage sur la couleur de fond pour maîtriser le résultat. Sur votre propre site, dans les présentations et les outils de design, gardez l'alpha.
Obtenir rapidement une couche alpha propre
Si vous avez besoin de détourages aux contours doux plutôt que de masques durs, removebackground.dev produit des fichiers PNG ou WebP transparents avec une couche alpha complète, et son API peut aussi renvoyer le masque en niveaux de gris seul.
Questions
Que signifie RGBA ?
Rouge, vert, bleu et alpha (en anglais red, green, blue, alpha). Les trois premiers décrivent la couleur d'un pixel et le quatrième son opacité, de 0 (totalement transparent) à la valeur maximale (255 dans les images 8 bits) pour totalement opaque.
Quelle est la différence entre alpha direct et alpha prémultiplié ?
L'alpha direct stocke séparément la couleur complète d'un pixel et son opacité. L'alpha prémultiplié stocke la couleur déjà multipliée par l'opacité, comme si elle avait été composée sur du noir. Le PNG utilise toujours l'alpha direct ; beaucoup d'outils de rendu et de vidéo utilisent le prémultiplié en interne.
Pourquoi mon détourage a-t-il un contour blanc ou coloré ?
En général, l'ancien fond est encore mélangé aux pixels du contour, ou l'image a été lissée sur du blanc avant l'enregistrement. Décontaminer les couleurs du contour, utiliser un masque doux et exporter avec un alpha complet plutôt qu'une couleur de cache règle la plupart des cas.
Un masque est-il la même chose qu'une couche alpha ?
Ils contiennent la même information : une valeur de gris par pixel qui indique sa visibilité. Une couche alpha est stockée dans le fichier image ; un masque est généralement une image en niveaux de gris séparée ou un masque de fusion dans un éditeur.
Comment savoir si un PNG est vraiment transparent ?
Placez-le sur un fond sombre et sur un fond clair et vérifiez que le fond apparaît à travers. Ou lancez identify d'ImageMagick avec %[opaque], ou vérifiez la valeur minimale de la couche alpha dans Pillow ; un minimum de 255 signifie que rien n'est transparent.
Essayez avec votre propre image
Les nouveaux comptes reçoivent 50 crédits gratuits. Un crédit par image, sans abonnement, et les crédits n'expirent jamais.
Supprimer un arrière-planSources
- MDN: Alpha (alpha channel) glossary entry
- W3C: Portable Network Graphics (PNG) Specification (Third Edition)
- W3C: Compositing and Blending Level 1, simple alpha compositing
- MDN: Image file type and format guide
- Adobe Help: Select and Mask in Photoshop
- Adobe: Remove background with AI in Photoshop (layer masks)
- rembg README: color decontamination and edge modes
- ImageMagick: Format and print image properties (escapes)
- Pillow: Image module reference
- Etsy Help: Requirements and best practices for images in your Etsy shop