Python PIL:用另一个图像的频道替换频道

时间:2014-11-22 01:52:40

标签: python image python-imaging-library

让我们说我想拍摄我的RGB图像并完全交换它的绿色通道,比如另一个图像的蓝色通道。最好的方法是什么?我的第一个想法是它会存在于ImageChops中,但这似乎是全通道合成功能。

1 个答案:

答案 0 :(得分:4)

Coworker找到了它。 Getalpha和putalpha太具体了,因为我需要其他渠道。 Image.getdata和Image.merge是我最终需要的东西(好吧,我实际上把几张完整的图像写成" L"合并之前)

以后任何人有同样问题的例子:

R, G, B= im.getdata(0), im.getdata(1), im.getdata(2) 
newImage = Image.merge("RGB", [R,G,B])

我使用的代码首先烘焙到一个频道:

specChannel = Image.open(os.path.join(self.info['stagingFolder'], "specular.png")).convert("L")
glossChannel = Image.open(os.path.join(self.info['stagingFolder'], "gloss.png")).convert("L")
BlankIm = Image.new("L", (512,512), (255))
mask2Im = Image.merge("RGBA", [specChannel,BlankIm,BlankIm,glossChannel])