我有两张图片A
,B
并且在许多地区都相似。
我想创建一个图像,C
以便
B = C on top of A
哪里C
应该尽可能透明。on top of
是正常的图层叠加。
所以C
某种之间的差异A
和B
。如果A
和B
相同,则C
完全透明。如果A
和B
非常不同,则它们C
将与几乎相同B
。
我有两张图片A
,B
并且在许多地区都相似。
我想创建一个图像,C
以便
B = C on top of A
哪里C
应该尽可能透明。on top of
是正常的图层叠加。
所以C
某种之间的差异A
和B
。如果A
和B
相同,则C
完全透明。如果A
和B
非常不同,则它们C
将与几乎相同B
。
Answers:
您可以使用“差异”图层模式创建图层蒙版,然后将其应用于B:
在那里-使A层和B层不可见,并且您应该非常接近所需的层。对图层蒙版进行进一步的操作(我建议使用“颜色”->“曲线”)可以调整C层上区域的不透明度/透明度。
更新我最近在Stackoverflow上回答了与此类似的问题,其中OP希望以编程方式执行任务(使用Python + Python-imaging-library)-我已经发布了有关该问题的完整程序,这可能对任何人都有帮助对这个答案感兴趣。
On the layer's dialog, mark B's layer mode as "difference".
不好意思 我正在查看“图层”工具窗口,如果右键单击B层,则看不到任何类似的内容layer mode
。我发现的最接近的是Add Layer Mask
,但我认为那不是您所指的。使用v2.8.22。
有一个简单的方法可以做到这一点:
将图像打开为两层,运行“滤镜-动画-优化(差异)”,您应该得到的结果图像现在由底层和顶层的差异层组成。
仅当您具有部分透明性时,事情才会变得复杂,因为过滤器会将其删除。
这是我在这种情况下发现的解决方法:
图像将收到白色背景,但请放心,我们稍后将其撤消。
现在我们在部分透明的地方有白色背景的差异层,但是我们需要这些像素是透明的,因此我们将采用diff的形状,并从原始顶层复制该形状的图像。确保选择了新生成的差异层,然后继续:
当然,不会发生魔术,并且部分透明的顶层不会更改颜色或降低底层的透明度,因此仅适用于扩展情况,其中顶层的更改后的像素覆盖了底层。
PS jsbueno的方法对我不起作用。
GIMP具有一种名为“颜色消除”的画笔模式。将用颜色X着色的画笔应用于确定的像素P1将创建具有降低的Alpha通道的像素P2,在正常模式下将P2与具有颜色X的像素混合会生成像素P1。使用“从颜色到Alpha”操作可以实现应用于选定区域或整个图像的相同效果。
笔刷模式也可以应用于“克隆工具”。在这种情况下,可以从背景图像A的像素中获取颜色并将其应用于结果图像B的相应像素。剩下的图像是所需的图像C。
详细说明,图像C的创建如下:
注意:如果背景图像不透明,则此方法按描述的方式工作。在背景图像的透明部分上,在A顶部混合C看起来与图像B不同。