我有以下代码:
color = complexity * (255 / iterationCap)
r = (color >> 16) & 255
g = (color >> 8) & 255
b = (color >> 0) & 255
我正在尝试从color
变量得到的浮点数计算颜色。
目前,我正在使用python 3.3尝试将位移{255}以及and
来获取正确的r
,g
和b
值。< / p>
我得到的错误是:
TypeError: unsupported operand type(s) for >>: 'float' and 'int'
目前我正在使用图像库将像素绘制到文件中,我只是将颜色元组添加到数组中,然后将其输入Image.putdata(..)
。
答案 0 :(得分:5)
在Python 3中,/
运算符是浮点除法。您希望使用//
进行整数除法。
鉴于您对代码应该做什么的评论,我们可以编写如下内容:
color = int(complexity * 255 / iterationCap) # gives an integer number from 0 to 255
r = color >> 16
g = color >> 8
b = color
随着复杂性的变化,这会产生灰色渐变。
答案 1 :(得分:1)
color = long(complexity * (255 / iterationCap))
由于位移浮点数是未定义的操作。
答案 2 :(得分:1)
在尝试按位操作之前转换为int。
color = int(complexity * (255 / iterationCap))