颜色对比度の计算(python实现)

对比度 = (L1 + 0.05)/(L2 + 0.05)「其中:L指颜色的相对亮度」

相对亮度L = 0.2126 * R + 0.7152 * G + 0.0722 * B
其中 R, G , B 取值为:若 XsRGB <= 0.03928 则 X = XsRGB/12.92 ;否则 X = ((XsRGB+0.055)/1.055) ^ 2.4

XsRGB 在此指代 RsRGB, GsRGB, 或 BsRGB,取值为 XsRGB = X8bit/255 「X8bit 指R、G、B通道各自在8位/通道下 0-255 的取值」。

n进制读入,十进制输出

print (int(x , n))

x=input()
y=input()
x16=int(x,16)
y16=int(y,16)
print(x16)
print(y16)
print()
#print(type(x))
a=[int(x[0:2],16),int(x[2:4],16),int(x[4:],16)]
b=[int(y[0:2],16),int(y[2:4],16),int(y[4:],16)]
#print(a,b)
for i in range(len(a)):
    if a[i]/255 < 0.03928:
        a[i]/=(12.92*255)
    else:
         a[i]=((a[i]/255+0.055)/1.055)**2.4
for i in range(len(b)):
    if b[i]/255 < 0.03928:
        b[i]/=(12.92*255)
    else:
        b[i]=((b[i]/255+0.055)/1.055)**2.4
#print(a,b)
aa=L1 = 0.2126 * a[0] + 0.7152 * a[1] + 0.0722 * a[2]
bb=L1 = 0.2126 * b[0] + 0.7152 * b[1] + 0.0722 * b[2]
#print(aa,bb)
print((aa+0.05)/(bb+0.05))
print((bb+0.05)/(aa+0.05))

黑色#000000白色#ffffff对比度为21