我正在尝试在python中编写一些与某些颜色相关的角度代码。基本上我有一个充满角度的二维数组,我通过其他数组循环执行计算以达到每个像素的ha_deg
ha_array[i,j] = ha_deg
我希望将其变成带有渐变色的图像。所以如果0是红色,180是绿色,360是蓝色,我将能够逐个像素地为每个角度分配颜色。对不起,这是一个开放式的问题,我只是不确定如何继续,可以使用一些指导!谢谢!
答案 0 :(得分:1)
这是一种方法。下面是用于在两个RGB值之间生成线性RGB色彩梯度的一般函数。通过组合适当长度的颜色渐变,从红色到绿色,从绿色到蓝色,可以制作RGB颜色值列表,可以作为角度值和所需颜色之间的映射:
def generateColorGradient(RGB1, RGB2, n, includeEnd=False):
dRGB = [float(x2-x1)/(n-1) for x1, x2 in zip(RGB1, RGB2)]
gradient = [tuple([int(x+k*dx) for x, dx in zip(RGB1, dRGB)]) for k in range(n-1+includeEnd)]
return gradient
gradient1 = generateColorGradient((255, 0, 0), (0, 255, 0), 181, includeEnd=False)
gradient2 = generateColorGradient((0, 255, 0), (0, 0, 255), 181, includeEnd=True)
gradient = numpy.array(gradient1 + gradient2)
#If `ha_array` is a numpy array, you can simply do this to convert all angles to RGB values:
color_array = gradient[ha_array]
#Then if you're using PIL to make images:
image = Image.fromarray(numpy.uint8(color_array))