图像处理新手。当将两个图像与枕头合并时,我对这些方法感到困惑:
PIL.Image.Image
.paste()
.composite()
.alpha_composite()
.blend()
有人能提供一个快速的解释吗?或者我在哪里可以获得相关的背景知识?
发布于 2022-05-24 11:53:49
我是这样看的:
blend
是最简单的。在每个像素位置,例如,图像A的30%和图像B的70%,在整个图像中,每个图像的固定的和恒定的比例。这个比率是一个数字。这个操作对透明度并不感兴趣,它更像是一个加权平均值,在输出图像中的每个像素位置都可以看到两个输入图像的一部分。paste
和composite
是同义词。它们使用与图像大小相同的掩码,并根据在每个位置可能不同的掩模值获取图像A和图像B的比例。所以你可能有0-100比例的图像A和图像B在顶部和100-0比例在底部,这看起来像是一个从顶部的图像到底部的另一个图像的平滑混合过渡。或者,它可能就像一个基本不透明的前景,您只看到一个输入图像,但透明窗口,您可以通过它看到另一个输入图像。与两个输入图像大小相同的掩码是这里的关键,它可以在不同的位置假设不同的值。换句话说,blend
不是alpha/透明通道,每个输入图像在整个输出图像中都有固定的比例。
paste
是一个单一的alpha通道,可以随图像的不同而变化。
alpha_composite
是两个alpha通道,它们都可以随图像的不同而变化。
https://stackoverflow.com/questions/72362114
复制相似问题