我想将我的颜色数组转换为RGB像素值。
颜色
array(['#32CD32', '#CD5C5C', '#00BFFF', '#1E90FF', '#00008B', '#ADFF2F',
'#B0E0E6', '#7CFC00', '#00008B', '#1E90FF', '#F08080', '#F08080',
'#FA8072', '#0000FF', '#7CFC00', '#B0E0E6'],
dtype='<U7')
我尝试了什么?
pixel_color = ['#%02x%02x%02x' % (c[0], c[1], c[2]) for c in colors]
我收到了以下错误:
***** TypeError:%x format:需要一个整数,而不是str **
然后我做了以下事情:
pixel_color = ["#%02x%02x%02x" %(int(c[0]), int(c[1]), int(c[2])) for c in colors]
然后我得到以下错误:
***** ValueError:基数为10的int()的文字无效:&#39;#&#39; **
答案 0 :(得分:1)
在尝试转换之前,您没有从输入中删除#
。另外,为什么不使用bytes.fromhex()
:
x = ['#32CD32', '#CD5C5C', '#00BFFF', '#1E90FF', '#00008B', '#ADFF2F',
'#B0E0E6', '#7CFC00', '#00008B', '#1E90FF', '#F08080', '#F08080',
'#FA8072', '#0000FF', '#7CFC00', '#B0E0E6']
for i in x:
red, green, blue = bytes.fromhex(i[1:])
print(red, green, blue)
输出:
50 205 50
205 92 92
0 191 255
30 144 255
0 0 139
173 255 47
176 224 230
124 252 0
0 0 139
30 144 255
240 128 128
240 128 128
250 128 114
0 0 255
124 252 0
176 224 230