早上好/下午/晚上好!我正在制作一个程序,我遇到了一个问题。此程序应从给定文本创建QR代码,并应将其颜色更改为RGB或HEX中的给定颜色。但是,当我把HEX颜色代码变成RGB“解释器”......好吧,你可以看到这个问题:输入 - 61c3ff和输出应该显示类似R = 61 TO decimal(97),G = c3 TO decimal( 195)和B = ff到十进制(255)。但在输出中我只能看到R = 6,G = 12,B = 15.这到底是什么?这是我的代码的一部分,它必须识别给出哪一个颜色代码:RGB或HEX并且必须将HEX“转换”为RGB(例如,RGB中的{#} 9effec将是158 255 236)。
for i in color:
if i == " ":
color = color.split()
x = color[0]
y = color[1]
z = color[2]
else: # If HEX color
if color[0] == "#": # if it starts with "#"
color = color[1:]
decX = color[0:1]
decY = color[2:3]
decZ = color[4:5]
x = int(decX, 16)
y = int(decY, 16)
z = int(decZ, 16)
print(color, x, y, z)
else: # if it's without "#"
decX = color[0:1]
decY = color[2:3]
decZ = color[4:5]
x = int(decX, 16)
y = int(decY, 16)
z = int(decZ, 16)
print(color, x, y, z)
如果你需要完整的代码 - https://pastebin.com/yCgK2KwU
您的问题是由错误的切片引起的,请考虑以下示例:
color = "61c3ff"
print(color[0:1]) #6
print(color[2:3]) #c
print(color[4:5]) #f
你可以看到以str
形式切割[t:t+1]
给str
长度为1
,只需在每个切片中增加第二个值,它应该正常工作:
color = "61c3ff"
print(color[0:2]) #61
print(color[2:4]) #c3
print(color[4:6]) #ff