Skip to content

Commit 4a29659

Browse files
Merge pull request #586 from v4ld3rr4m4/color_name_from_rgb
adding file primary_colors.py with a function about color_name_from_rgb
2 parents 33d3279 + fb91781 commit 4a29659

File tree

1 file changed

+173
-0
lines changed

1 file changed

+173
-0
lines changed

Colors/primary_colors.py

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
def simpleColor(r,g,b):
2+
""" simpleColor obtiene el nombre del color mas general al cual se acerca su formato R G B """
3+
r=int(r)
4+
g=int(g)
5+
b=int(b)
6+
try:
7+
#ROJO --------------------------------------------------
8+
if r > g and r > b:
9+
10+
rg = diff(r,g) #distancia rojo a verde
11+
rb = diff(r,b) #distancia rojo a azul
12+
13+
if g < 65 and b < 65 and rg > 60: #azul y verde sin luz
14+
return "ROJO"
15+
16+
gb=diff(g,b) #distancia de verde a azul
17+
18+
if rg < rb: # Verde mayor que Azul
19+
if gb < rg: #Verde mas cerca de Azul
20+
if gb >=30 and rg >= 80:
21+
return "NARANJA"
22+
elif gb<=20 and rg >= 80:
23+
return "ROJO"
24+
elif gb<=20 and b > 175:
25+
return "CREMA"
26+
27+
else:
28+
return "CHOCOLATE"
29+
else: #Verde mas cerca de Rojo
30+
if rg > 60:
31+
return "NARANJA*"
32+
elif r > 125:
33+
return "AMARILLO"
34+
else:
35+
return "COCHOLATE"
36+
elif rg > rb: #Azul mayor que verde
37+
if bg < rb: #Verde mas cerca de Azul
38+
if gb < 60:
39+
if r >150:
40+
return "ROJO 2"
41+
else:
42+
return "MARRON"
43+
elif g > 125:
44+
return "ROSADO"
45+
else:
46+
return "ROJO 3"
47+
else: #Verde mas cerca de Rojo
48+
if rb < 60:
49+
if r > 160:
50+
return "ROSADO*"
51+
else:
52+
return "ROJO"
53+
else:
54+
return "ROJO"
55+
56+
else: # g y b iguales
57+
if rg > 20:
58+
if r>=100 and b <60:
59+
return "ROJO"
60+
elif r >=100:
61+
return "ROJO"
62+
else:
63+
return "MARRON"
64+
65+
else:
66+
return "GRIS"
67+
# VERDE ---------------------------------------------------
68+
elif g > r and g > b:
69+
gb = diff(g,b) #distancia verde a azul
70+
gr = diff(g,r) #distancia verde a rojo
71+
72+
if r < 65 and b < 65 and gb > 60: #rojo y azul sin luz
73+
return "VERDE"
74+
75+
rb=diff(r,b) #distancia de rojo a azul
76+
77+
if r > b: #ROJO > AZUL
78+
if gr < gb: #Verde con Rojo
79+
80+
if rb>=150 and gr <=20:
81+
return "AMARILLO"
82+
else:
83+
return "VERDE"
84+
else: #...Verde
85+
return "VERDE"
86+
87+
elif r < b: #AZUL > ROJO
88+
if gb < gr: #Verde con Azul
89+
90+
if gb<=20:
91+
return "TURQUESA"
92+
else:
93+
return "VERDE"
94+
else: #...Verde
95+
return "VERDE"
96+
97+
else: #r y b iguales
98+
if gb > 10:
99+
return "VERDE"
100+
else:
101+
return "GRIS"
102+
103+
104+
#AZUL ------------------------------------------------------
105+
elif b > r and b > g:
106+
bg = diff(b,g) #distancia azul a verde
107+
br = diff(b,r) #distancia azul a rojo
108+
109+
if r < 65 and g < 65 and bg > 60: #rojo y verde sin luz
110+
return "AZUL"
111+
112+
rg=diff(r,g) #distancia de rojo a verde
113+
114+
if g < r: # ROJO > VERDE
115+
if bg < rg: #Azul con Verde
116+
if bg<=20:
117+
return "TURQUESA"
118+
else:
119+
return "CELESTE"
120+
else: #...Azul
121+
if rg <= 20:
122+
if r >= 150:
123+
return "LILA"
124+
else:
125+
return "AZUL *************"
126+
else:
127+
return "AZUL"
128+
129+
elif g > r: # VERDE > ROJO
130+
if br < rg: #Azul con rojo
131+
if br <=20:
132+
if r > 150 and g < 75:
133+
return "ROSADO FIUSHA"
134+
elif ir > 150:
135+
return "LILA"
136+
else:
137+
return "MORADO"
138+
else:
139+
return "MORADO"
140+
141+
142+
else: #...Azul
143+
if rg <= 20:
144+
if bg <=20:
145+
return "GRIS"
146+
else:
147+
return "AZUL"
148+
else: #r y g iguales
149+
if bg > 20:
150+
if r>=100 and b <60:
151+
return "ROJO"
152+
elif r >=100:
153+
return "ROJO"
154+
else:
155+
return "MARRON"
156+
else:
157+
return "GRIS"
158+
159+
160+
# IGUALES---------------------------------------
161+
else:
162+
return "GRIS"
163+
164+
except:
165+
166+
return "Not Color"
167+
168+
169+
#---------------------------------------------------------------------------------------------------
170+
# Puedes probar asi: python primary_colors.py 120,0,0 , esto resultara en un ROJO como respuesta
171+
#--------------------------------------------------------------------------------------------------
172+
if __name__=='__main__':
173+
print(simpleColor(sys.argv[1],sys.argv[2],sys.argv[3]))

0 commit comments

Comments
 (0)