Python PIL如何将1位深度图像转换为RGBA?

4

如标题所述。我使用以下代码打开模式为 "1" 的单波段图像:

image = Image.open("picture.tif")

我尝试使用以下方法将其转换为RGBA格式:

image.convert("RGBA")

然后,每当我使用以下方式检查它的模式时

print(image.mode)

我知道它仍然是“1”。 我甚至尝试过使用“L”(这是另一种单频带图像模式),但仍然没有成功。 无论我做什么,都无法进行转换。 搜索网络似乎只会显示从“RGBA”转换为“1”,但我找不到任何关于相反方向的内容。 是否有任何方法(即使在Python之外)将1位深度的图像转换为RGBA?

帮帮忙?


我无法重现这个问题;我得到的是 img.mode => '1',然后 img.convert('RGBA').mode => 'RGBA' - Martijn Pieters
1个回答

9

image.convert 不会改变图像的模式,它会返回一个新的图像,该图像具有新的模式。

image = image.convert("RGBA")

根据文档所述:

除非另有说明,所有方法都返回一个新的Image类实例,保存生成的图像。


那么我需要将一个变量设置为该新图像并保存该图像? - TrentFaris242
@TrentFaris242,你可以将它设置为一个新变量,或者像我在示例中所做的那样替换原始变量。 - Mark Ransom
非常感谢!如果我有更多的声望,我会投票支持这个答案。我已经到处寻找答案了。再次感谢。 - TrentFaris242

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接