首页 文章

*** ValueError:int()的基数为10的文字无效:'#'

提问于
浏览
0

我想将我的颜色数组转换为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()的文字无效:'#'**

1 回答

  • 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
    

相关问题