Oui c'est possible. Permettez-moi de décrire comment cela se fait, en utilisant cette image de Wikimedia Commons (par ed_g2s , sous licence CC-By-SA 3.0 ) comme exemple:
Ouvrez les versions d'arrière-plan noir et blanc en tant que couches de la même image (en utilisant Ouvrir en tant que couches ... ou ouvrez simplement les deux et copiez-collez l'une dans l'autre). Déplacez le calque blanc au-dessus du calque noir si ce n'est pas déjà le cas. Les deux couches devraient ressembler à ceci:
Prenez la différence des calques: clonez le calque noir (vous en aurez besoin plus tard), changez le mode de calque du calque blanc en "différence" et fusionnez-le. Inversez le résultat. Cela vous donne le canal alpha de l'image d'origine.
Modifier: si vos arrière-plans ne sont pas en noir et blanc, le calque de différence inversé n'aura pas d'arrière-plan noir. Pour résoudre ce problème, désaturez d'abord le calque (en utilisant le mode qui vous donne le meilleur contraste), puis utilisez Couleurs → Auto → Normaliser pour rendre l'arrière-plan noir. Vous pouvez également utiliser le mélangeur de canaux place, mais c'est un peu plus difficile à utiliser.
( Normaliser ci-dessus fonctionne si le canal alpha que vous recréez a au moins certaines parties avec une opacité de 100%; si l'image que vous recréez est partout translucide, vous pouvez utiliser Couleurs → Niveaux ... pour définir uniquement le point noir à la place. )
Si vous n'en avez pas déjà, vous devez également créer une version de votre image avec un fond noir pour l'étape suivante. Pour ce faire, utilisez les étapes supplémentaires suivantes:
- Choisissez la version originale qui a le fond le plus sombre. Créez un nouveau calque au-dessus, rempli de sa couleur d'arrière-plan.
- Clonez le calque de différence et réinversez-le afin qu'il ait un fond blanc. Placez ce calque au-dessus du nouveau de couleur unie que vous venez de créer, réglez son mode de calque sur "multiplier" et fusionnez-le.
- Enfin, changez le mode du calque résultant en "soustraire" et fusionnez-le sur le calque avec l'image d'origine. Cela devrait soustraire l'arrière-plan d'origine, vous laissant l'image sur un fond noir.
Si nous utilisions un format d'image avec alpha pré-multiplié, nous aurions plus ou moins terminé maintenant. Mais comme nous ne le sommes pas, nous devons encore démultiplier les canaux RVB. Pour ce faire, clonez le calque alpha que nous avons créé à l'étape précédente (ou copiez-le simplement dans le presse-papiers), définissez son mode de calque sur "diviser" et fusionnez-le avec le calque de fond noir que vous avez cloné avant l'étape 2. Le résultat devrait ressembler à ceci (comparer avec la version originale sur fond noir pour voir la différence):
Maintenant, ajoutez un masque de calque au calque résultant, sélectionnez le masque et collez-y le calque alpha. Le résultat devrait maintenant ressembler plus ou moins à l'image transparente d'origine. Enfin, pour transformer le masque en un canal alpha approprié, vous pouvez l'appliquer (mais l'exportation PNG de GIMP le fera pour vous même si vous ne le faites pas). Et voilà - un PNG transparent reconstruit prêt à l'emploi:
Bien sûr, cette technique nécessite vraiment que vous ayez des versions de l'image sur un fond noir pur et blanc pur. Si les arrière-plans sont un peu décalés, des méthodes similaires peuvent toujours être utilisées, mais vous devrez peut-être effectuer des ajustements de couleurs supplémentaires et les résultats peuvent ne pas être aussi parfaits. ( Modifier: voir les ajouts à l'étape 2 ci-dessus. Les instructions modifiées doivent fonctionner avec des arrière-plans de n'importe quelle couleur, tant qu'ils sont de couleur unie.)
Ps. GIMP dispose également d'une fonction "Effacement des couleurs" (en tant que mode de fusion pour l'outil Remplissage du seau ou en tant que couleur vers alpha ... pour l'image entière), qui est utile pour reconstruire la transparence lorsque vous n'avez qu'une seule version de l'image sur un fond de couleur unie. Cependant, à moins d'être utilisé avec soin, il a tendance à produire une sortie qui est plutôt plus transparente que vous ne le souhaiteriez probablement .
Pps. Si vous comparez très soigneusement les images originales et reconstruites, vous verrez qu'elles ne sont pas exactement identiques - certaines valeurs de couleur sont décalées de 1/256 environ. C'est à cause de la façon dont fonctionne le mode de calque «diviser» de GIMP : plutôt que de calculer l'inverse réel de la multiplication alpha, qui serait sortie = (255 × entrée ) / couche , il calcule en fait la sortie = (256 × entrée ) / ( couche+ 1). Cette non-concordance, qui est ostensiblement effectuée pour éviter la division par zéro, signifie que certaines des couleurs peuvent arrondir à une valeur légèrement différente de ce qu'elles devraient. Hélas, je ne connais aucun moyen de contourner cela, à part patcher GIMP, écrire un plugin pour faire la division comme nous le voulons, ou utiliser un autre programme. Heureusement, cependant, la différence de couleur est rarement, voire jamais, perceptible par l'œil humain.