Image.putpixel 具有 HSL 值:TypeError "argument is not tuple"

Image.putpixel with HSL value: TypeError "argument is not tuple"

我想将 HSL 数据放入 RGBA 图像中。这是我的代码:

import Image

myImage = Image.new("RGBA", (100, 100), (0,0,0,255))

h = 180
s = 100
l = 50

hsl_String = "hsl(" + str(h) + "," + str(s) + "%," + str(l) + "%)"
print hsl_String
myImage.putpixel((2, 2), hsl_String)

这给了我 putpixel 函数的以下错误:TypeError: new style getargs format but argument is not a tuple。但是,hsl_String 是 hsl(180,100%,50%),类似于 PIL 文档中的说明。

将 hsl_String 替换为例如(0,0,0,0) 效果很好,也可以替换为 (0,0,0)(尽管图像是 RGBA,但没有不透明度的 RGB 值)。

这个错误是什么意思?以及如何将不透明度(alpha 通道)的值添加到 HSL 值?

尝试使用 ImageColor 模块中的 getrgb 函数:

myImage.putpixel((2, 2), ImageColor.getrgb(hsl_String))

您可以像这样添加 alpha 值:

alpha = 255
myImage.putpixel((2, 2), ImageColor.getrgb(hsl_String) + (alpha, ))