J'ai deux images A
et B
qui sont similaires dans de nombreuses régions.
Je veux créer une image C
pour que
B = C on top of A
où C
devrait être aussi transparent que possible. on top of
est la superposition de couche normale.
Il C
y a donc une sorte de différence entre A
et B
. Si A
et B
sont identiques, alors C
est totalement transparent. Si A
et B
sont très différents, alors leur C
serait presque identique à B
.
gimp
transparency
cheesus SO arrête de nuire à Monica
la source
la source
Réponses:
Vous pouvez utiliser le mode de calque "différence" pour créer un masque de calque et l'appliquer à B comme ceci:
Vous y êtes - rendez les couches A et B invisibles, et vous devriez être très proche de ce que vous voulez. D'autres opérations sur le masque de calque (je recommande d'utiliser Couleurs-> courbe) peuvent ajuster l'opacité / la transparence des zones du calque C.
mettre à jour j'ai récemment répondu à une question semblable à cela sur Stackoverflow, où l'OP voulait effectuer la tâche programatically ( en utilisant Python + Python-imagerie bibliothèque) - J'ai posté le programme complet sur cette question et il pourrait être utile pour tout le monde intéressé par cette réponse.
la source
On the layer's dialog, mark B's layer mode as "difference".
Pardon quoi? Je regarde la fenêtre de l'outil Calques, et si je fais un clic droit sur le calque B, je ne vois rien qui ressemble à unlayer mode
. Le plus proche que j'ai trouvé estAdd Layer Mask
, mais je ne pense pas que c'est à cela que vous faites référence. Utilisation de la v2.8.22.Il existe une méthode simple pour le faire:
Ouvrez les images en deux calques, exécutez Filtres - Animation - Optimiser (différence), vous devriez obtenir la même image résultante qui est maintenant faite du calque inférieur et d'un calque diff au-dessus.
Les choses ne se compliquent que si vous avez une transparence partielle, car le filtre la supprime.
Voici une solution de contournement que j'ai trouvée pour ce cas:
Les images recevront un fond blanc, mais ne vous inquiétez pas, nous l'annulerons plus tard.
Maintenant, nous avons le calque de différence avec un fond blanc dans les endroits de transparence partielle, mais nous avons besoin de ces pixels pour être transparent, nous allons donc prendre la forme du diff et copier l'image de cette forme à partir du calque supérieur d'origine. Assurez-vous que la couche diff nouvellement générée est sélectionnée et continuez:
Bien sûr, aucune magie ne se produit, et la couche supérieure partiellement transparente ne modifiera pas les couleurs ou ne réduira pas la transparence de la couche inférieure, donc c'est uniquement pour les cas d'extension, où les pixels modifiés de la couche supérieure recouvrent la couche inférieure.
La méthode de PS jsbueno n'a pas fonctionné pour moi.
la source
GIMP dispose d'un mode pinceau nommé "Effacement des couleurs". L'application de ce pinceau, coloré avec la couleur X, au pixel P1 défini crée un pixel P2 avec un canal alpha abaissé, de la même manière que le mélange P2 avec le pixel avec la couleur X en mode normal donne le pixel P1. Le même effet, appliqué à la région sélectionnée ou à l'image entière peut être obtenu en utilisant l'action "Color to Alpha" .
Le mode pinceau peut également être appliqué à "Outil de clonage". Dans ce cas, il est possible de prendre la couleur des pixels de l'image d'arrière-plan A et de l'appliquer aux pixels correspondants de l'image résultante B. L'image qui reste est l'image souhaitée C.
Dans les détails, la création de l'image C est la suivante:
Remarque: Cette méthode fonctionne comme décrit si l'image d'arrière-plan est opaque. Sur les parties transparentes de l'image d'arrière-plan, le mélange de C en haut de A est différent de l'image B.
la source