2016-01-24 27 views
0

我想将HSL数据放入RGBA图像中。这是我的代码:带有HSL值的Image.putpixel:TypeError“参数不是元组”

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功能以下错误:类型错误:新款getargs格式,但参数不是一个元组。但是,hsl_String是hsl(180,100%,50%),类似于PIL文档中所述的内容。

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

那个错误是什么意思?我怎样才能为不透明度(alpha通道)的值增加一个HSL值?

回答

2

尝试使用getrgb功能从ImageColor模块:

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

您可以添加Alpha值是这样的:

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

谢谢你,行之有效。 –