Files
@ 0cb3fbe06b5d
Branch filter:
Location: OneEye/exp/colors.py - annotation
0cb3fbe06b5d
1.1 KiB
text/x-python
Go, Engine: some tests and numerous bugfixes
a7d4586e150c a0db29122ab6 a7d4586e150c a0db29122ab6 a0db29122ab6 a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a0db29122ab6 a0db29122ab6 a0db29122ab6 a0db29122ab6 a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a7d4586e150c a0db29122ab6 a7d4586e150c a7d4586e150c a7d4586e150c | import sys
# oops, actually we could use import colorsys
def hex2int(s):
return int(str(s),base=16)
def int2RGB(x):
r=(x>>16)&255
g=(x>>8)&255
b=x&255
return r/255, g/255, b/255
def _RGB2HC(r,g,b):
M=max(r,g,b)
m=min(r,g,b)
C=M-m
if C==0: H_=0
elif M==r: H_=(g-b)/C % 6
elif M==g: H_=(b-r)/C + 2
elif M==b: H_=(r-g)/C + 4
H=60*H_
return H,C
def RGB2HSV(r,g,b):
H,C=_RGB2HC(r,g,b)
V=max(r,g,b)
S=C/V if V!=0 else 0
return H,S,V
def RGB2HSL(r,g,b):
H,C=_RGB2HC(r,g,b)
L=(max(r,g,b)+min(r,g,b))/2
S=C/(1-abs(2*L-1)) if L!=1 else 0
return H,S,L
def RGB2HSI(r,g,b):
H,C=_RGB2HC(r,g,b)
I=(r+g+b)/3
S=1-min(r,g,b)/I
return H,S,I
if not len(sys.argv)>1:
sys.exit("no data file provided")
f=open(sys.argv[1])
data=[line.split() for line in f]
f.close()
print("img\tstate\thex\tR\tG\tB\tH\tSl\tL\tSv\tV\tSi\tI")
for rec in data:
color=hex2int(rec[2])
R,G,B=int2RGB(color)
H,Sl,L=RGB2HSL(R,G,B)
H,Sv,V=RGB2HSV(R,G,B)
H,Si,I=RGB2HSI(R,G,B)
args=[R,G,B,H,Sl,L,Sv,V,Si,I]
args=map(lambda x: round(x,3), args)
print(rec[0],rec[1],rec[2],*args,sep="\t")
|