Ich habe zwei Bilder A
und B
die in vielen Regionen ähnlich sind.
Ich möchte ein Bild erzeugen , C
so dass
B = C on top of A
wo C
sollte so transparent wie möglich sein. on top of
ist die normale Ebenenüberlagerung.
Ist C
so eine Art Unterschied zwischen A
und B
. Wenn A
und B
identisch sind, dann C
ist völlig transparent. Wenn A
und B
sind sehr unterschiedlich, dann C
wäre ihre fast identisch mit B
.
gimp
transparency
Käse SO hör auf, Monica Schaden zuzufügen
quelle
quelle
Antworten:
Sie können den Ebenenmodus "Unterschied" verwenden, um eine Ebenenmaske zu erstellen und auf B anzuwenden:
Da bist du - mach die Ebenen A und B unsichtbar, und du solltest ganz nah an dem sein, was du willst. Weitere Operationen an der Ebenenmaske (ich empfehle die Verwendung von Farben-> Kurve) können die Deckkraft / Transparenz der Bereiche auf Ebene C anpassen.
update Ich habe kürzlich eine ähnliche Frage zu Stackoverflow beantwortet, bei der das OP die Aufgabe programmgesteuert ausführen wollte (Verwenden der Python + Python-Imaging-Bibliothek). Ich habe das vollständige Programm zu dieser Frage veröffentlicht und es könnte für jeden hilfreich sein interessiert an dieser Antwort.
quelle
On the layer's dialog, mark B's layer mode as "difference".
Entschuldigung, was? Ich schaue auf das Ebenen-Werkzeugfenster und wenn ich mit der rechten Maustaste auf Ebene B klicke, sehe ich nichts, das wie a aussiehtlayer mode
. Das Nächste, das ich gefunden habe, istAdd Layer Mask
, aber ich glaube nicht, dass Sie sich auf das beziehen. Verwenden von v2.8.22.Es gibt eine einfache Methode, um dies zu tun:
Öffnen Sie die Bilder als zwei Ebenen, führen Sie Filter - Animation - Optimieren (Unterschied) aus. Sie sollten dasselbe resultierende Bild erhalten, das jetzt aus der unteren Ebene und einer Diff-Ebene darüber besteht.
Die Dinge werden nur kompliziert, wenn Sie teilweise Transparenz haben, weil der Filter es entfernt.
Hier ist eine Problemumgehung, die ich für diesen Fall gefunden habe:
Die Bilder erhalten einen weißen Hintergrund, aber keine Sorge, wir machen es später wieder rückgängig.
Jetzt haben wir die Differenzebene mit weißem Hintergrund an Stellen mit teilweiser Transparenz, aber diese Pixel müssen transparent sein. Daher nehmen wir die Form des Diffs an und kopieren das Bild dieser Form von der ursprünglichen oberen Ebene. Stellen Sie sicher, dass die neu generierte Diff-Ebene ausgewählt ist, und fahren Sie fort:
Natürlich geschieht keine Zauberei, und die teilweise transparente obere Ebene ändert weder die Farben noch die Transparenz der unteren Ebene. Daher gilt dies nur für Erweiterungsfälle, bei denen die veränderten Pixel der oberen Ebene die untere Ebene bedecken.
PS Die Methode von jsbueno hat bei mir nicht funktioniert.
quelle
GIMP hat einen Pinselmodus mit dem Namen "Color Erasing". Wenn Sie diesen mit Farbe X gefärbten Pinsel auf ein bestimmtes Pixel P1 anwenden, wird ein Pixel P2 mit verringertem Alphakanal erstellt. Dadurch wird Pixel P1 durch Mischen von P2 mit Pixel mit Farbe X im normalen Modus erzeugt. Der gleiche Effekt, der auf den ausgewählten Bereich oder das gesamte Bild angewendet wird, kann mit der Aktion "Farbe auf Alpha" erzielt werden .
Der Pinselmodus kann auch auf "Klonen" angewendet werden. In diesem Fall ist es möglich, Farbe von Pixeln des Hintergrundbildes A zu nehmen und sie auf entsprechende Pixel des Ergebnisbildes B anzuwenden. Das Bild, das übrig ist, ist das gewünschte Bild C.
Im Detail ist die Erstellung von Bild C wie folgt:
Hinweis: Diese Methode funktioniert wie beschrieben, wenn das Hintergrundbild undurchsichtig ist. Bei transparenten Bereichen des Hintergrundbilds unterscheidet sich das Mischen von C über A von Bild B.
quelle