Qu’est-ce qu’un canal alpha ?

Un canal alpha stocke la transparence de chaque pixel séparément des canaux de couleur d’une image. Ses valeurs représentent une couverture entièrement transparente, entièrement opaque ou partiellement transparente.

Fonctionnement des canaux alpha

Une valeur alpha indique le degré d’opacité d’un pixel. En PNG, zéro signifie entièrement transparent et la valeur maximale de l’échantillon signifie entièrement opaque ; les valeurs intermédiaires indiquent une couverture partielle, comme le long d’un contour adouci. Un outil de composition mélange chaque pixel de premier plan avec ce qui se trouve derrière, proportionnellement à l’alpha. La couleur associée à l’alpha peut être stockée de deux façons. L’alpha direct, aussi appelé non prémultiplié ou non associé, conserve la couleur complète à côté de sa valeur alpha. L’alpha prémultiplié, ou associé, stocke la couleur déjà multipliée par l’alpha, ce qui raccourcit la formule de composition. Dans l’exemple du standard HTML, un jaune semi-transparent est représenté par 255, 255, 0, 127 en alpha direct et par 127, 127, 0, 127 en alpha prémultiplié. Les fichiers PNG stockent un alpha direct, les bitmaps de sortie du canvas 2D HTML utilisent un alpha prémultiplié, et TIFF peut contenir l’un ou l’autre avec une balise qui indique lequel. Le logiciel doit savoir quelle forme il lit, et la conversion entre les deux entraîne des pertes pour les pixels qui ne sont pas entièrement opaques.

Points clés

  1. Que se passe-t-il lorsque l’alpha direct et l’alpha prémultiplié sont confondus ? Les contours adoucis changent de couleur. Lorsque des données prémultipliées sont composées comme des données à alpha direct, leur couleur est multipliée une seconde fois par l’alpha : les contours partiellement transparents deviennent donc sombres. Des données à alpha direct traitées comme prémultipliées sont ajoutées à pleine intensité, ce qui rend les contours trop lumineux. Les pixels entièrement opaques sont identiques dans les deux formes : c’est pourquoi l’erreur apparaît comme un liseré autour des éléments détourés plutôt que dans les zones opaques. Les outils qui acceptent les deux formes proposent un réglage : le filtre overlay de FFmpeg, par exemple, possède une option alpha avec les valeurs straight, premultiplied et auto.
  2. Pourquoi un élément détouré présente-t-il un halo après redimensionnement ? Avec l’alpha direct, un pixel entièrement transparent stocke tout de même une couleur. Un filtre qui calcule séparément la moyenne de chaque canal mélange cette couleur cachée aux pixels voisins du contour. La solution habituelle consiste à prémultiplier, à redimensionner, puis à revenir à l’alpha direct. Tous les outils ne le font pas pour vous : la documentation de libvips précise que son opération de redimensionnement ne prémultiplie pas l’alpha et demande aux appelants de le faire d’abord.
  3. Quels formats d’image fixe conservent l’alpha ? PNG stocke un canal alpha complet dans ses types couleurs vraies avec alpha et niveaux de gris avec alpha ; sinon, il peut attribuer à chaque entrée de palette sa propre valeur alpha ou désigner une couleur unique comme entièrement transparente. WebP peut stocker l’alpha dans les fichiers avec ou sans perte ; avec perte, la structure de fichier étendue est nécessaire. GIF n’a pas de canal alpha : un indice de palette peut être marqué comme transparent, de sorte que chaque pixel est soit dessiné, soit ignoré. JPEG n’a pas de canal alpha, et les convertisseurs diffèrent dans leur façon de remplacer la transparence. Certains composent l’image sur une couleur d’arrière-plan. D’autres suppriment simplement le canal alpha, ce qui laisse la couleur stockée par les pixels transparents : la documentation d’ImageMagick décrit sa sortie JPEG comme équivalente à -alpha off, les arrière-plans transparents devenant souvent noirs. Pour un résultat prévisible, composez l’image sur un arrière-plan de votre choix avant l’encodage. Les valeurs par défaut de cette opération diffèrent également : l’opération flatten de sharp, par exemple, utilise le noir par défaut.
  4. L’extension d’un fichier vidéo indique-t-elle s’il possède un canal alpha ? Non. L’alpha dépend du codec et de son profil. Parmi les codecs Apple ProRes, seuls ProRes 4444 et ProRes 4444 XQ prennent en charge un canal alpha : deux fichiers portant la même extension peuvent donc différer. VP8 et VP9 peuvent contenir de l’alpha, mais MDN indique que Safari ne prend en charge la transparence alpha dans aucun des deux. Il peut aussi être nécessaire d’indiquer à l’encodeur de l’écrire : l’encodeur prores_ks de FFmpeg possède une option alpha_bits dont la valeur 0 désactive le plan alpha.

Quand les canaux alpha sont importants

Préservez l’alpha lorsque vous composez des logos, des éléments détourés, des incrustations ou des animations transparentes sur d’autres contenus. Un codec ou un format qui ne prend pas en charge l’alpha supprimera la transparence ou nécessitera le choix d’un arrière-plan.

Comment Transloadit facilite l’utilisation des canaux alpha

Le Robot /image/resize de Transloadit rend blanc l’arrière-plan des images transparentes par défaut ; sa documentation indique de définir background sur none pour préserver la transparence. Le paramètre format de sortie doit toujours désigner un format capable de stocker l’alpha. Le paramètre alpha du Robot contrôle directement le canal. Demander has_transparency via output_meta indique si une image contient des parties transparentes, ce qui aide à choisir un format de sortie pour chaque fichier. Le Robot /image/bgremove supprime les arrière-plans et produit du PNG par défaut.

Ces deux pages ne précisent pas si le redimensionnement utilise l’alpha direct ou prémultiplié. Si la qualité des contours est importante, redimensionnez un élément détouré aux contours adoucis, placez-le sur un arrière-plan contrasté et examinez le résultat avant de traiter toute une collection.

Découvrir les fonctionnalités de Transloadit pour les images

Références

Transformer vos connaissances sur les médias en une chaîne de traitement opérationnelle

Reliez les téléversements, le traitement, l’IA, le stockage et la diffusion via une seule API déclarative — la pile d’encodage, la montée en charge et l’évolution constante des formats sont prises en charge pour vous.

Essayer Transloadit gratuitement