¿De qué color es esto? [cerrado]

70

Dados tres valores numéricos, que son los elementos Rojo, Verde y Azul de un color (ocho bits por canal, 0 a 255), su programa debe mostrar el nombre del color dado.

Por ejemplo;

Input:  255, 0, 0  
Output: Red

o;

Input:  80, 0, 0
Output: Dark Red

Este es un concurso de popularidad, por lo que la respuesta que tenga más votos para el primero de julio gana.

Inspirado por: muestra el color RGB de entrada

carne sin carne
fuente
19
¿El nombre según qué?
curiousdannii
8
¿Lo hará el sentido común?
Unclemeat
18
Es un concurso de popularidad, por lo que el punto es la creatividad.
unclemeat
22
Soy muy daltónico. El código que respondería de una manera precisa a mi visión tomaría muchos menos caracteres de los que el resto de ustedes están inventando.
Michael Stern
77
@michaelsterm esto no es código golf. Si publica una respuesta con un enlace a una página wiki explicando su tipo de daltonismo, entonces podría ser bastante interesante.
Unclemeat

Respuestas:

123

Pitón

Este es un script de Python que utiliza los resultados de la Encuesta de color de xkcd , en la que Randall Munroe hizo a miles de personas exactamente la misma pregunta. Llegó a la siguiente tabla:

El gráfico

La encuesta solo tiene datos sobre colores completamente saturados (supongo que los colores no saturados se describirían como 'grisáceos'). Esto significa que tenemos que hacer algunos trucos relacionados con el color para forzar que nuestra entrada se sature completamente.

Lo que he hecho aquí es simplemente convertir el color de entrada a HSV, aumentar la saturación y llamarlo un día. Probablemente esto no sea muy correcto desde el punto de vista de la percepción del color, pero funciona bastante bien aquí, y es lo suficientemente simple como para que solo necesite la biblioteca estándar. Pilas incluidas de hecho.

El script espera que satfaces.txt, desde aquí ( espejo ), esté en el directorio actual.

import sys, colorsys

n = (int(sys.argv[1], 16))
r = ((n & 0xff0000) >> 16) / 255.0
g = ((n & 0x00ff00) >> 8) / 255.0
b = ((n & 0x0000ff)) / 255.0

(h, s, v) = colorsys.rgb_to_hsv(r, g, b)
(r, g, b) = colorsys.hsv_to_rgb(h, 1, v)

match = "[{}, {}, {}]".format(int(r*255), int(g*255), int(b*255))

for line in open("satfaces.txt"):
    if line.startswith(match):
        print("You were thinking of: " + line.split("] ")[1].strip())
        break

Algunos ejemplos se ejecutan:

$ python color.py CEB301
You were thinking of: yellow
$ python color.py CC9900
You were thinking of: orange
$ python color.py CC0000
You were thinking of: red
$ python color.py 0077FF
You were thinking of: blue

Y aquí están los colores:

Amarillo naranja rojo Azul

Yo diría que está muy cerca.

Wander Nauta
fuente
24
La encuesta XKCD es lo primero que pensé cuando vi la pregunta. :)
undergroundmonorail
11
@undergroundmonorail Lo mismo aquí. Estoy bastante seguro de que uno podría reemplazar mi cerebro con una caja negra que solo hace referencia a xkcd todo el día
Wander Nauta
Para más diversión, puede intentar ver si hay una coincidencia exacta en rgb.txt primero: xkcd.com/color/rgb.txt
No es que Charles
1
@Charles Hmm, eso sería bastante fácil de hecho. Por otro lado, necesitaría un archivo de datos adicional. Creo que dejaré la función de detección de mierda de bebé a otros competidores :)
Wander Nauta
1
Bien hecho y felicidades. El ganador por asomo (aunque cuello y cuello por un tiempo allí) es @WanderNauta.
Unclemeat
89

Actualización con GUI!

Azul aciano claro Un Lime ligeramente más brillante (web) (X11 verde)

Tomo la lista de colores de esta página de Wikipedia (y las páginas relacionadas).

También incluí algunos NLG para producir resultados como "Rosa búlgara con un poco menos de verde y azul" y algunas variantes. Intenta jugar para ver si puedes adivinar la verdadera "Rosa búlgara" usando esos comentarios. :)

El algoritmo intentará encontrar el color más cercano a la entrada, según lo definido por la distancia euclidiana. Entonces puede ingresar cualquier número de triplete y le dará el color más cercano a ese triplete.

(el código acepta valores "separados por comas", "separados por espacios" o "separados por comas")

Advertencia

Este código se conecta a Wikipedia, por lo que requiere conexión a Internet para ejecutarse por primera vez (y escribir la información en un archivo en el mismo diccionario). Sin embargo, las veces posteriores se leerá del archivo. Si desea la versión sin conexión, el código está disponible en este enlace de Ideone (con ejecución de muestra).

Código:

import re, os
from bs4 import BeautifulSoup as BS
import requests
import cPickle as pickle
import random

def encode_color(text):
    return tuple(map(int, re.split(', |,| ', text)))

def color_name(col):
    global color_map, color_nums
    arr = color_nums
    closest = None
    min_dist = 10**8
    for color in arr:
        dist = sum((color[i]-col[i])**2 for i in range(3))
        if dist < min_dist:
            closest = color
            min_dist = dist
    result = color_map[closest]
    rgb = ['red', 'green', 'blue']
    slightly_more = ['with a hint of', 'with traces of', 'with slightly more']
    slightly_less = ['with subdued', 'with slightly less']
    more_more = ['with more', 'with strong hint of']
    more_less = ['with less', 'with diminished']
    count = 0
    adds = ['','']
    for i in range(3):
        expl_list = ['']
        if 5 < col[i]-closest[i] < 10:
            expl_list = slightly_more
            count += 1
            add_idx = 0
        elif 10 <= col[i]-closest[i]:
            expl_list = more_more
            count += 2
            add_idx = 0
        elif -10 <= col[i]-closest[i] < -5:
            expl_list = slightly_less
            count -= 1
            add_idx = 1
        elif col[i]-closest[i] <= -10:
            expl_list = more_less
            count -= 2
            add_idx = 1
        expl = expl_list[random.randint(0, len(expl_list)-1)]
        if expl is not '':
            if adds[add_idx] is '':
                adds[add_idx] += ' %s %s' % (expl, rgb[i])
            else:
                adds[add_idx] += ' and %s' % rgb[i]
    if 3 <= count <= 4:
        result = 'A slightly brighter '+result
    elif 4 < count:
        result = 'A brighter '+result
    elif -4 <= count <= -3:
        result = 'A slightly darker '+result
    elif count < -4:
        result = 'A darker '+result
    elif count > 0:
        result += adds[0]
    elif count < 0:
        result += adds[1]
    return result

links = ['http://en.wikipedia.org/wiki/List_of_colors:_A%E2%80%93F',
         'http://en.wikipedia.org/wiki/List_of_colors:_G%E2%80%93M',
         'http://en.wikipedia.org/wiki/List_of_colors:_N%E2%80%93Z']

def is_color(tag):
    return tag.name == 'th' and len(tag.contents)==1 and tag.contents[0].name=='a'

def parse_color(hexa):
    return (int(hexa[0:2], 16), int(hexa[2:4], 16), int(hexa[4:6], 16))

print 'Loading color names...'
if os.path.exists('parse_wiki_color.pickle'):
    with open('parse_wiki_color.pickle', 'rb') as infile:
        color_map, color_nums = pickle.load(infile)
else:
    color_map = {}
    color_nums = []
    for link in links:
        soup = BS(requests.get(link).text,'lxml')
        for color in soup.find_all(is_color):
            try:
                color_num = parse_color(color.next_sibling.next_sibling.string[1:])
                color_nums.append(color_num)
                color_map[color_num] = str(color.a.string)
            except:
                continue
    color_nums = sorted(color_nums)
    with open('parse_wiki_color.pickle', 'wb') as outfile:
        pickle.dump((color_map, color_nums), outfile, protocol=2)
print 'Color names loaded'

def main(event=None):
    global var, col_name, col_disp
    text = var.get()
    color = encode_color(text)
    result = color_name(color)
    col_name.set(result)
    col_rgb.set(color)
    var.set('')
    col_disp.configure(background='#%02x%02x%02x' % color)

from Tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()
caption = Label(frame, text='Enter RGB color:')
caption.pack(side=LEFT)
var = StringVar()
entry = Entry(frame, textvariable=var)
entry.focus_set()
entry.pack(side=LEFT)
entry.bind('<Return>',func=main)
button = Button(frame, text='Get name', command=main)
button.pack(side=LEFT)
col_rgb = StringVar()
col_rgb_disp = Label(root, textvariable=col_rgb)
col_rgb_disp.pack()
col_name = StringVar()
col_label = Label(root, textvariable=col_name)
col_label.pack()
col_disp = Label(root)
col_disp.configure(padx=50, pady=45, relief=RAISED)
col_disp.pack()
root.geometry('400x200')
root.mainloop()
justo
fuente
46
Bien, pero debes hacer que tu terminología sea un poco más pretenciosa. Deberías cambiar slightly morea with a hint ofy slightly lesspara subdued.
Level River St
@steveverrill: ¡Actualizado!
justhalf
1
Impresionante. +1 lo es.
seequ
es esta pitón?
user1886419
1
Nunca antes había tenido tantos votos en StackExchange. ¡Gracias a todos!
justhalf
77

JavaScript

La siguiente función está escrita teniendo en cuenta a los usuarios caninos:

function getColorName(r, g, b) {
    return "gray";
}

Para los perros más refinados que existen:

function getColorName(r, g, b) {
    var gray = (0.21*r + 0.71*g + 0.07*b);
    if (gray < 64)
        return "black";
    else if (gray < 128)
        return "dark gray";
    else if (gray < 192)
        return "light gray";
    else if (gray < 256)
        return "white";
    else
        whimper();
}
IQAndreas
fuente
44
Sin embargo
Pinna_be
13
@ Pinna_be Sssh, lo sé , pero estás arruinando la broma. ;)
IQAndreas
39
las rosas son amarillas / las violetas son azules / los perros pueden ver el color / simplemente no como tú
esponjoso
15
+1 else whimper();- me encanta
66
La comida es comida, a quién le importa de qué color es ...;)
The Blue Dog
42

Javascript

window.location = 'http://www.color-hex.com/color/' + 'ff00ff'
Fabricio
fuente
1
Me gusta este.
MxLDevs
34

Mathematica

Actualización: se agregó un parámetro para configurar el número de colores más cercanos a mostrar. El valor predeterminado es 5 colores.

Dados los valores RGB de un color sin nombre, a continuación se encuentran los ncolores más cercanos de una lista de 140 nombres de colores HTML. Luego traza el color sin nombre y sus 5 vecinos más cercanos en un espacio de 3, con ejes para rojo, verde y azul. En la etiqueta de trazado, nombra el color más cercano y proporciona sus valores RGB.

colorInterpret[rgb_,n_: 5]:=
Module[{colorData,valsRGB,pts,closest},
colorData=({ColorData["HTML",#],#}&/@ColorData["HTML","Range"][[1]])/.{RGBColor[x__]:> {x}};
valsRGB=colorData[[All,1]];
pts=Append[colorData[[Position[valsRGB,#]&/@Nearest[valsRGB,rgb,n]//Flatten]],{rgb,"Unnamed Color"}];
closest=pts[[1]];
Graphics3D[{PointSize[.05],
{RGBColor@@#,Point[#],Text[Style[#2,Black,14],(#-{.01,.01,.01})]}&@@@pts
},
Axes-> True,
PlotLabel-> Row[{"closest color: ", closest}],
ImageSize-> 600,
ImagePadding-> 50,
BaseStyle-> 14,
AxesLabel->{Style["Red",18],Style["Green",18],Style["Blue",18]}]]

Ejemplos

Mostrar los 5 colores más cercanos:

 colorInterpret[{.55, .86, .69}]

verde


Mostrar los 15 colores más cercanos:

azul

DavidC
fuente
3
Buena visualización!
tomsmeding
1
Solución realmente impresionante, +1 para visualización tridimensional.
Nit
27

CJam

l~]:X;"xkcd.com/color/rgb.txt"gN%"  "f%{[1=1>eu2/{:~Gb}%X]z{:-}%2f#:+}$0=0=

Esto obtiene la lista de colores de xkcd y encuentra el más cercano.
Nota: la cadena de aspecto espacial en el medio es en realidad una pestaña.

Para ejecutarlo, utilice el intérprete de http://sf.net/p/cjam

Ejemplo:

Entrada 147 125 0
salidababy poop

aditsu
fuente
18

R

R tiene una lista incrustada de 657 nombres de colores para propósitos de trazado. El siguiente código toma la entrada del usuario y calcula la distancia entre esta entrada rgb y el valor rgb de esos 657 colores y genera el nombre del más cercano.

a=as.integer(strsplit(readline(),", ")[[1]]);color_list=sapply(colors(),col2rgb);names(which.min(colSums(abs(apply(color_list,2,function(x)x-a)))))

Sin golf:

a <- as.integer(strsplit(readline(),", ")[[1]]) #Ask user input as stdin, and process it
color_list <- sapply(colors(),col2rgb) #Convert the color name list into an RGB matrix
#Computes the difference with user input, adds the absolute value and output the name of the element with the minimal value
names(which.min(colSums(abs(apply(color_list, 2, function(x)x-a)))))

Ejemplos:

> a=as.integer(strsplit(readline(),", ")[[1]]);color_list=sapply(colors(),col2rgb);names(which.min(colSums(abs(apply(color_list,2,function(x)x-a)))))
80, 0, 2
[1] "darkred"
> a=as.integer(strsplit(readline(),", ")[[1]]);color_list=sapply(colors(),col2rgb);names(which.min(colSums(abs(apply(color_list,2,function(x)x-a)))))
150, 150, 150
[1] "gray59"
> a=as.integer(strsplit(readline(),", ")[[1]]);color_list=sapply(colors(),col2rgb);names(which.min(colSums(abs(apply(color_list,2,function(x)x-a)))))
0, 200, 255
[1] "deepskyblue"
> a=as.integer(strsplit(readline(),", ")[[1]]);color_list=sapply(colors(),col2rgb);names(which.min(colSums(abs(apply(color_list,2,function(x)x-a)))))
255, 100, 70
[1] "tomato"

Editar: la misma idea pero usando la lista de nombres de colorHexa :

a=strsplit(xpathSApply(htmlParse("http://www.colorhexa.com/color-names"),"//li",xmlValue),"#")
n=sapply(a,`[`,1)
r=apply(do.call(rbind,strsplit(sapply(a,`[`,2)," "))[,2:4],2,as.integer)
n[which.min(colSums(abs(apply(r,1,`-`,as.integer(strsplit(readline(),", ")[[1]])))))]

Ejemplo:

> a=strsplit(xpathSApply(htmlParse("http://www.colorhexa.com/color-names"),"//li",xmlValue),"#")
> n=sapply(a,`[`,1)
> r=apply(do.call(rbind,strsplit(sapply(a,`[`,2)," "))[,2:4],2,as.integer)
> n[which.min(colSums(abs(apply(r,1,`-`,as.integer(strsplit(readline(),", ")[[1]])))))]
208, 32, 12
[1] " Fire engine red "
plannapus
fuente
66
No estoy seguro de por qué lo jugaste.
Pierre Arlaud
66
1) Porque me divierte. 2) No jugué golf, solo lo hice de una sola línea para que readlineno lea la siguiente línea de código como si fuera stdin en modo interactivo. Usé la palabra "sin golf" para decir "sangrado, con saltos de línea y comentarios". Si realmente lo hubiera jugado, no lo habría usado color_listcomo nombre de variable.
plannapus
@plannapus Te estás contradiciendo a ti mismo; lo jugaste porque te divertía pero no lo jugaste. : P Buena solución de todos modos, y el lenguaje adecuado para el trabajo.
tomsmeding
11

Perl

Espera http://xkcd.com/color/rgb.txten el directorio actual. Muestra cinco colores más cercanos con buen porcentaje.

Ejecución de ejemplo

> perl code.pl
147,125,0
99.87% baby poop
98.44% yellowish brown
98.31% puke brown
97.79% poo
97.27% diarrhea

Código

#!perl -w
use strict;

sub hex2rgb ($) {
    my ($h) = @_;
    map {hex} ($h=~/[0-9a-fA-F]{2}/g)
}

sub distance ($$) {
    my ($acol1, $acol2) = @_;
    my $r = 0;
    $r += abs($acol1->[$_] - $acol2->[$_]) for (0..$#$acol1);
    $r
}

sub read_rgb {
    open my $rgb, '<', 'rgb.txt' or die $!;
    my @col;
    while (<$rgb>) {
    my ($name, $hex) = split /\t#/;
    my @rgb = hex2rgb $hex;
    push @col, [@rgb, $name];
    }
    close $rgb;
    \@col
}

my $acolours = read_rgb;
my @C = split /, */, <>;

printf "%.02f%% %s\n", (768-$_->[0])/768*100, $_->[4] for 
    (sort {$a->[0] <=> $b->[0]} 
     map [distance(\@C, $_), @$_], @$acolours)[0..4];
perl chino goth
fuente
3
¡ejemplo perfecto! Pero también una buena solución.
Sam Denton
11

Scala

Mi intento: la característica más importante es que no requiere conexión a Internet. (Espero que no sea demasiado largo: D) Además, invoqué a Chtulhu mientras preparaba la base de datos de colores (porque analicé un subconjunto de HTML con expresiones regulares; la expresión regular y el enlace a la fuente están en los comentarios)

Editar: precisión mejorada

Ejemplo de ejecución: http://ideone.com/e3n0dG

object Main {

  def main(args: Array[String]) {
    val color = extractBrightness(readLine().split("[, ]+").map(_.toInt))

    val nearestColor = colors.minBy(t => distance(extractBrightness(parseColor(t._1)), color, weight))._2
    println(s"Your color is $nearestColor")
  }

  def parseColor(s: String) = {
    s.sliding(2, 2).map(Integer.parseInt(_, 16)).toVector
  }

  def distance(c1: Seq[Double], c2: Seq[Double], weight: Seq[Double]) = {
    c1.zip(c2).map(t => ((x: Double) => x * x)(t._1 - t._2)).zip(weight).map(t => t._1 * t._2).sum
  }

  val weight = Vector(0.01, 1.0, 0.8)

  def extractBrightness(c: Seq[Int]) = {
    val Seq(r, g, b) = c
    val brightness = c.sum.toDouble / 3
    val rOffset = r - brightness
    val bOffset = b - brightness
    Seq(brightness, rOffset, bOffset)
  }

  // colors are extracted by using this regex: <li>[\s\S]*?<a href="/......">([\w ]+)</a>[\s\S]*?<a href="/......">#(......)</a>[\s\S]*?</li>
  // from this page: http://www.colorhexa.com/color-names
  val colors = Vector(
    "5d8aa8" -> "Air Force blue",
    "f0f8ff" -> "Alice blue",
    "e32636" -> "Alizarin crimson",
    "efdecd" -> "Almond",
    "e52b50" -> "Amaranth",
    "ffbf00" -> "Amber",
    "ff033e" -> "American rose",
    "9966cc" -> "Amethyst",
    "a4c639" -> "Android Green",
    "cd9575" -> "Antique brass",
    "915c83" -> "Antique fuchsia",
    "faebd7" -> "Antique white",
    "008000" -> "Ao",
    "8db600" -> "Apple green",
    "fbceb1" -> "Apricot",
    "00ffff" -> "Aqua",
    "7fffd4" -> "Aquamarine",
    "4b5320" -> "Army green",
    "e9d66b" -> "Arylide yellow",
    "b2beb5" -> "Ash grey",
    "87a96b" -> "Asparagus",
    "ff9966" -> "Atomic tangerine",
    "a52a2a" -> "Auburn",
    "fdee00" -> "Aureolin",
    "6e7f80" -> "AuroMetalSaurus",
    "ff2052" -> "Awesome",
    "007fff" -> "Azure",
    "89cff0" -> "Baby blue",
    "a1caf1" -> "Baby blue eyes",
    "f4c2c2" -> "Baby pink",
    "21abcd" -> "Ball Blue",
    "fae7b5" -> "Banana Mania",
    "ffe135" -> "Banana yellow",
    "848482" -> "Battleship grey",
    "98777b" -> "Bazaar",
    "bcd4e6" -> "Beau blue",
    "9f8170" -> "Beaver",
    "f5f5dc" -> "Beige",
    "ffe4c4" -> "Bisque",
    "3d2b1f" -> "Bistre",
    "fe6f5e" -> "Bittersweet",
    "000000" -> "Black",
    "ffebcd" -> "Blanched Almond",
    "318ce7" -> "Bleu de France",
    "ace5ee" -> "Blizzard Blue",
    "faf0be" -> "Blond",
    "0000ff" -> "Blue",
    "a2a2d0" -> "Blue Bell",
    "6699cc" -> "Blue Gray",
    "0d98ba" -> "Blue green",
    "8a2be2" -> "Blue purple",
    "8a2be2" -> "Blue violet",
    "de5d83" -> "Blush",
    "79443b" -> "Bole",
    "0095b6" -> "Bondi blue",
    "e3dac9" -> "Bone",
    "cc0000" -> "Boston University Red",
    "006a4e" -> "Bottle green",
    "873260" -> "Boysenberry",
    "0070ff" -> "Brandeis blue",
    "b5a642" -> "Brass",
    "cb4154" -> "Brick red",
    "1dacd6" -> "Bright cerulean",
    "66ff00" -> "Bright green",
    "bf94e4" -> "Bright lavender",
    "c32148" -> "Bright maroon",
    "ff007f" -> "Bright pink",
    "08e8de" -> "Bright turquoise",
    "d19fe8" -> "Bright ube",
    "f4bbff" -> "Brilliant lavender",
    "ff55a3" -> "Brilliant rose",
    "fb607f" -> "Brink pink",
    "004225" -> "British racing green",
    "cd7f32" -> "Bronze",
    "a52a2a" -> "Brown",
    "ffc1cc" -> "Bubble gum",
    "e7feff" -> "Bubbles",
    "f0dc82" -> "Buff",
    "480607" -> "Bulgarian rose",
    "800020" -> "Burgundy",
    "deb887" -> "Burlywood",
    "cc5500" -> "Burnt orange",
    "e97451" -> "Burnt sienna",
    "8a3324" -> "Burnt umber",
    "bd33a4" -> "Byzantine",
    "702963" -> "Byzantium",
    "007aa5" -> "CG Blue",
    "e03c31" -> "CG Red",
    "536872" -> "Cadet",
    "5f9ea0" -> "Cadet blue",
    "91a3b0" -> "Cadet grey",
    "006b3c" -> "Cadmium green",
    "ed872d" -> "Cadmium orange",
    "e30022" -> "Cadmium red",
    "fff600" -> "Cadmium yellow",
    "a67b5b" -> "Café au lait",
    "4b3621" -> "Café noir",
    "1e4d2b" -> "Cal Poly Pomona green",
    "a3c1ad" -> "Cambridge Blue",
    "c19a6b" -> "Camel",
    "78866b" -> "Camouflage green",
    "ffff99" -> "Canary",
    "ffef00" -> "Canary yellow",
    "ff0800" -> "Candy apple red",
    "e4717a" -> "Candy pink",
    "00bfff" -> "Capri",
    "592720" -> "Caput mortuum",
    "c41e3a" -> "Cardinal",
    "00cc99" -> "Caribbean green",
    "ff0040" -> "Carmine",
    "eb4c42" -> "Carmine pink",
    "ff0038" -> "Carmine red",
    "ffa6c9" -> "Carnation pink",
    "b31b1b" -> "Carnelian",
    "99badd" -> "Carolina blue",
    "ed9121" -> "Carrot orange",
    "ace1af" -> "Celadon",
    "b2ffff" -> "Celeste",
    "4997d0" -> "Celestial blue",
    "de3163" -> "Cerise",
    "ec3b83" -> "Cerise pink",
    "007ba7" -> "Cerulean",
    "2a52be" -> "Cerulean blue",
    "a0785a" -> "Chamoisee",
    "fad6a5" -> "Champagne",
    "36454f" -> "Charcoal",
    "7fff00" -> "Chartreuse",
    "de3163" -> "Cherry",
    "ffb7c5" -> "Cherry blossom pink",
    "cd5c5c" -> "Chestnut",
    "d2691e" -> "Chocolate",
    "ffa700" -> "Chrome yellow",
    "98817b" -> "Cinereous",
    "e34234" -> "Cinnabar",
    "d2691e" -> "Cinnamon",
    "e4d00a" -> "Citrine",
    "fbcce7" -> "Classic rose",
    "0047ab" -> "Cobalt",
    "d2691e" -> "Cocoa brown",
    "6f4e37" -> "Coffee",
    "9bddff" -> "Columbia blue",
    "002e63" -> "Cool black",
    "8c92ac" -> "Cool grey",
    "b87333" -> "Copper",
    "996666" -> "Copper rose",
    "ff3800" -> "Coquelicot",
    "ff7f50" -> "Coral",
    "f88379" -> "Coral pink",
    "ff4040" -> "Coral red",
    "893f45" -> "Cordovan",
    "fbec5d" -> "Corn",
    "b31b1b" -> "Cornell Red",
    "9aceeb" -> "Cornflower",
    "6495ed" -> "Cornflower blue",
    "fff8dc" -> "Cornsilk",
    "fff8e7" -> "Cosmic latte",
    "ffbcd9" -> "Cotton candy",
    "fffdd0" -> "Cream",
    "dc143c" -> "Crimson",
    "990000" -> "Crimson Red",
    "be0032" -> "Crimson glory",
    "00ffff" -> "Cyan",
    "ffff31" -> "Daffodil",
    "f0e130" -> "Dandelion",
    "00008b" -> "Dark blue",
    "654321" -> "Dark brown",
    "5d3954" -> "Dark byzantium",
    "a40000" -> "Dark candy apple red",
    "08457e" -> "Dark cerulean",
    "986960" -> "Dark chestnut",
    "cd5b45" -> "Dark coral",
    "008b8b" -> "Dark cyan",
    "536878" -> "Dark electric blue",
    "b8860b" -> "Dark goldenrod",
    "a9a9a9" -> "Dark gray",
    "013220" -> "Dark green",
    "1a2421" -> "Dark jungle green",
    "bdb76b" -> "Dark khaki",
    "483c32" -> "Dark lava",
    "734f96" -> "Dark lavender",
    "8b008b" -> "Dark magenta",
    "003366" -> "Dark midnight blue",
    "556b2f" -> "Dark olive green",
    "ff8c00" -> "Dark orange",
    "9932cc" -> "Dark orchid",
    "779ecb" -> "Dark pastel blue",
    "03c03c" -> "Dark pastel green",
    "966fd6" -> "Dark pastel purple",
    "c23b22" -> "Dark pastel red",
    "e75480" -> "Dark pink",
    "003399" -> "Dark powder blue",
    "872657" -> "Dark raspberry",
    "8b0000" -> "Dark red",
    "e9967a" -> "Dark salmon",
    "560319" -> "Dark scarlet",
    "8fbc8f" -> "Dark sea green",
    "3c1414" -> "Dark sienna",
    "483d8b" -> "Dark slate blue",
    "2f4f4f" -> "Dark slate gray",
    "177245" -> "Dark spring green",
    "918151" -> "Dark tan",
    "ffa812" -> "Dark tangerine",
    "483c32" -> "Dark taupe",
    "cc4e5c" -> "Dark terra cotta",
    "00ced1" -> "Dark turquoise",
    "9400d3" -> "Dark violet",
    "00693e" -> "Dartmouth green",
    "555555" -> "Davy grey",
    "d70a53" -> "Debian red",
    "a9203e" -> "Deep carmine",
    "ef3038" -> "Deep carmine pink",
    "e9692c" -> "Deep carrot orange",
    "da3287" -> "Deep cerise",
    "fad6a5" -> "Deep champagne",
    "b94e48" -> "Deep chestnut",
    "704241" -> "Deep coffee",
    "c154c1" -> "Deep fuchsia",
    "004b49" -> "Deep jungle green",
    "9955bb" -> "Deep lilac",
    "cc00cc" -> "Deep magenta",
    "ffcba4" -> "Deep peach",
    "ff1493" -> "Deep pink",
    "ff9933" -> "Deep saffron",
    "00bfff" -> "Deep sky blue",
    "1560bd" -> "Denim",
    "c19a6b" -> "Desert",
    "edc9af" -> "Desert sand",
    "696969" -> "Dim gray",
    "1e90ff" -> "Dodger blue",
    "d71868" -> "Dogwood rose",
    "85bb65" -> "Dollar bill",
    "967117" -> "Drab",
    "00009c" -> "Duke blue",
    "e1a95f" -> "Earth yellow",
    "c2b280" -> "Ecru",
    "614051" -> "Eggplant",
    "f0ead6" -> "Eggshell",
    "1034a6" -> "Egyptian blue",
    "7df9ff" -> "Electric blue",
    "ff003f" -> "Electric crimson",
    "00ffff" -> "Electric cyan",
    "00ff00" -> "Electric green",
    "6f00ff" -> "Electric indigo",
    "f4bbff" -> "Electric lavender",
    "ccff00" -> "Electric lime",
    "bf00ff" -> "Electric purple",
    "3f00ff" -> "Electric ultramarine",
    "8f00ff" -> "Electric violet",
    "ffff00" -> "Electric yellow",
    "50c878" -> "Emerald",
    "96c8a2" -> "Eton blue",
    "c19a6b" -> "Fallow",
    "801818" -> "Falu red",
    "ff00ff" -> "Famous",
    "b53389" -> "Fandango",
    "f400a1" -> "Fashion fuchsia",
    "e5aa70" -> "Fawn",
    "4d5d53" -> "Feldgrau",
    "71bc78" -> "Fern",
    "4f7942" -> "Fern green",
    "ff2800" -> "Ferrari Red",
    "6c541e" -> "Field drab",
    "ce2029" -> "Fire engine red",
    "b22222" -> "Firebrick",
    "e25822" -> "Flame",
    "fc8eac" -> "Flamingo pink",
    "f7e98e" -> "Flavescent",
    "eedc82" -> "Flax",
    "fffaf0" -> "Floral white",
    "ffbf00" -> "Fluorescent orange",
    "ff1493" -> "Fluorescent pink",
    "ccff00" -> "Fluorescent yellow",
    "ff004f" -> "Folly",
    "228b22" -> "Forest green",
    "a67b5b" -> "French beige",
    "0072bb" -> "French blue",
    "86608e" -> "French lilac",
    "f64a8a" -> "French rose",
    "ff00ff" -> "Fuchsia",
    "ff77ff" -> "Fuchsia pink",
    "e48400" -> "Fulvous",
    "cc6666" -> "Fuzzy Wuzzy",
    "dcdcdc" -> "Gainsboro",
    "e49b0f" -> "Gamboge",
    "f8f8ff" -> "Ghost white",
    "b06500" -> "Ginger",
    "6082b6" -> "Glaucous",
    "e6e8fa" -> "Glitter",
    "ffd700" -> "Gold",
    "996515" -> "Golden brown",
    "fcc200" -> "Golden poppy",
    "ffdf00" -> "Golden yellow",
    "daa520" -> "Goldenrod",
    "a8e4a0" -> "Granny Smith Apple",
    "808080" -> "Gray",
    "465945" -> "Gray asparagus",
    "00ff00" -> "Green",
    "1164b4" -> "Green Blue",
    "adff2f" -> "Green yellow",
    "a99a86" -> "Grullo",
    "00ff7f" -> "Guppie green",
    "663854" -> "Halayà úbe",
    "446ccf" -> "Han blue",
    "5218fa" -> "Han purple",
    "e9d66b" -> "Hansa yellow",
    "3fff00" -> "Harlequin",
    "c90016" -> "Harvard crimson",
    "da9100" -> "Harvest Gold",
    "808000" -> "Heart Gold",
    "df73ff" -> "Heliotrope",
    "f400a1" -> "Hollywood cerise",
    "f0fff0" -> "Honeydew",
    "49796b" -> "Hooker green",
    "ff1dce" -> "Hot magenta",
    "ff69b4" -> "Hot pink",
    "355e3b" -> "Hunter green",
    "fcf75e" -> "Icterine",
    "b2ec5d" -> "Inchworm",
    "138808" -> "India green",
    "cd5c5c" -> "Indian red",
    "e3a857" -> "Indian yellow",
    "4b0082" -> "Indigo",
    "002fa7" -> "International Klein Blue",
    "ff4f00" -> "International orange",
    "5a4fcf" -> "Iris",
    "f4f0ec" -> "Isabelline",
    "009000" -> "Islamic green",
    "fffff0" -> "Ivory",
    "00a86b" -> "Jade",
    "f8de7e" -> "Jasmine",
    "d73b3e" -> "Jasper",
    "a50b5e" -> "Jazzberry jam",
    "fada5e" -> "Jonquil",
    "bdda57" -> "June bud",
    "29ab87" -> "Jungle green",
    "e8000d" -> "KU Crimson",
    "4cbb17" -> "Kelly green",
    "c3b091" -> "Khaki",
    "087830" -> "La Salle Green",
    "d6cadd" -> "Languid lavender",
    "26619c" -> "Lapis lazuli",
    "fefe22" -> "Laser Lemon",
    "a9ba9d" -> "Laurel green",
    "cf1020" -> "Lava",
    "e6e6fa" -> "Lavender",
    "ccccff" -> "Lavender blue",
    "fff0f5" -> "Lavender blush",
    "c4c3d0" -> "Lavender gray",
    "9457eb" -> "Lavender indigo",
    "ee82ee" -> "Lavender magenta",
    "e6e6fa" -> "Lavender mist",
    "fbaed2" -> "Lavender pink",
    "967bb6" -> "Lavender purple",
    "fba0e3" -> "Lavender rose",
    "7cfc00" -> "Lawn green",
    "fff700" -> "Lemon",
    "fff44f" -> "Lemon Yellow",
    "fffacd" -> "Lemon chiffon",
    "bfff00" -> "Lemon lime",
    "f56991" -> "Light Crimson",
    "e68fac" -> "Light Thulian pink",
    "fdd5b1" -> "Light apricot",
    "add8e6" -> "Light blue",
    "b5651d" -> "Light brown",
    "e66771" -> "Light carmine pink",
    "f08080" -> "Light coral",
    "93ccea" -> "Light cornflower blue",
    "e0ffff" -> "Light cyan",
    "f984ef" -> "Light fuchsia pink",
    "fafad2" -> "Light goldenrod yellow",
    "d3d3d3" -> "Light gray",
    "90ee90" -> "Light green",
    "f0e68c" -> "Light khaki",
    "b19cd9" -> "Light pastel purple",
    "ffb6c1" -> "Light pink",
    "ffa07a" -> "Light salmon",
    "ff9999" -> "Light salmon pink",
    "20b2aa" -> "Light sea green",
    "87cefa" -> "Light sky blue",
    "778899" -> "Light slate gray",
    "b38b6d" -> "Light taupe",
    "ffffed" -> "Light yellow",
    "c8a2c8" -> "Lilac",
    "bfff00" -> "Lime",
    "32cd32" -> "Lime green",
    "195905" -> "Lincoln green",
    "faf0e6" -> "Linen",
    "c19a6b" -> "Lion",
    "534b4f" -> "Liver",
    "e62020" -> "Lust",
    "18453b" -> "MSU Green",
    "ffbd88" -> "Macaroni and Cheese",
    "ff00ff" -> "Magenta",
    "aaf0d1" -> "Magic mint",
    "f8f4ff" -> "Magnolia",
    "c04000" -> "Mahogany",
    "fbec5d" -> "Maize",
    "6050dc" -> "Majorelle Blue",
    "0bda51" -> "Malachite",
    "979aaa" -> "Manatee",
    "ff8243" -> "Mango Tango",
    "74c365" -> "Mantis",
    "800000" -> "Maroon",
    "e0b0ff" -> "Mauve",
    "915f6d" -> "Mauve taupe",
    "ef98aa" -> "Mauvelous",
    "73c2fb" -> "Maya blue",
    "e5b73b" -> "Meat brown",
    "0067a5" -> "Medium Persian blue",
    "66ddaa" -> "Medium aquamarine",
    "0000cd" -> "Medium blue",
    "e2062c" -> "Medium candy apple red",
    "af4035" -> "Medium carmine",
    "f3e5ab" -> "Medium champagne",
    "035096" -> "Medium electric blue",
    "1c352d" -> "Medium jungle green",
    "dda0dd" -> "Medium lavender magenta",
    "ba55d3" -> "Medium orchid",
    "9370db" -> "Medium purple",
    "bb3385" -> "Medium red violet",
    "3cb371" -> "Medium sea green",
    "7b68ee" -> "Medium slate blue",
    "c9dc87" -> "Medium spring bud",
    "00fa9a" -> "Medium spring green",
    "674c47" -> "Medium taupe",
    "0054b4" -> "Medium teal blue",
    "48d1cc" -> "Medium turquoise",
    "c71585" -> "Medium violet red",
    "fdbcb4" -> "Melon",
    "191970" -> "Midnight blue",
    "004953" -> "Midnight green",
    "ffc40c" -> "Mikado yellow",
    "3eb489" -> "Mint",
    "f5fffa" -> "Mint cream",
    "98ff98" -> "Mint green",
    "ffe4e1" -> "Misty rose",
    "faebd7" -> "Moccasin",
    "967117" -> "Mode beige",
    "73a9c2" -> "Moonstone blue",
    "ae0c00" -> "Mordant red 19",
    "addfad" -> "Moss green",
    "30ba8f" -> "Mountain Meadow",
    "997a8d" -> "Mountbatten pink",
    "c54b8c" -> "Mulberry",
    "f2f3f4" -> "Munsell",
    "ffdb58" -> "Mustard",
    "21421e" -> "Myrtle",
    "f6adc6" -> "Nadeshiko pink",
    "2a8000" -> "Napier green",
    "fada5e" -> "Naples yellow",
    "ffdead" -> "Navajo white",
    "000080" -> "Navy blue",
    "ffa343" -> "Neon Carrot",
    "fe59c2" -> "Neon fuchsia",
    "39ff14" -> "Neon green",
    "059033" -> "North Texas Green",
    "0077be" -> "Ocean Boat Blue",
    "cc7722" -> "Ochre",
    "008000" -> "Office green",
    "cfb53b" -> "Old gold",
    "fdf5e6" -> "Old lace",
    "796878" -> "Old lavender",
    "673147" -> "Old mauve",
    "c08081" -> "Old rose",
    "808000" -> "Olive",
    "6b8e23" -> "Olive Drab",
    "bab86c" -> "Olive Green",
    "9ab973" -> "Olivine",
    "0f0f0f" -> "Onyx",
    "b784a7" -> "Opera mauve",
    "ffa500" -> "Orange",
    "f8d568" -> "Orange Yellow",
    "ff9f00" -> "Orange peel",
    "ff4500" -> "Orange red",
    "da70d6" -> "Orchid",
    "654321" -> "Otter brown",
    "414a4c" -> "Outer Space",
    "ff6e4a" -> "Outrageous Orange",
    "002147" -> "Oxford Blue",
    "1ca9c9" -> "Pacific Blue",
    "006600" -> "Pakistan green",
    "273be2" -> "Palatinate blue",
    "682860" -> "Palatinate purple",
    "bcd4e6" -> "Pale aqua",
    "afeeee" -> "Pale blue",
    "987654" -> "Pale brown",
    "af4035" -> "Pale carmine",
    "9bc4e2" -> "Pale cerulean",
    "ddadaf" -> "Pale chestnut",
    "da8a67" -> "Pale copper",
    "abcdef" -> "Pale cornflower blue",
    "e6be8a" -> "Pale gold",
    "eee8aa" -> "Pale goldenrod",
    "98fb98" -> "Pale green",
    "dcd0ff" -> "Pale lavender",
    "f984e5" -> "Pale magenta",
    "fadadd" -> "Pale pink",
    "dda0dd" -> "Pale plum",
    "db7093" -> "Pale red violet",
    "96ded1" -> "Pale robin egg blue",
    "c9c0bb" -> "Pale silver",
    "ecebbd" -> "Pale spring bud",
    "bc987e" -> "Pale taupe",
    "db7093" -> "Pale violet red",
    "78184a" -> "Pansy purple",
    "ffefd5" -> "Papaya whip",
    "50c878" -> "Paris Green",
    "aec6cf" -> "Pastel blue",
    "836953" -> "Pastel brown",
    "cfcfc4" -> "Pastel gray",
    "77dd77" -> "Pastel green",
    "f49ac2" -> "Pastel magenta",
    "ffb347" -> "Pastel orange",
    "ffd1dc" -> "Pastel pink",
    "b39eb5" -> "Pastel purple",
    "ff6961" -> "Pastel red",
    "cb99c9" -> "Pastel violet",
    "fdfd96" -> "Pastel yellow",
    "800080" -> "Patriarch",
    "536878" -> "Payne grey",
    "ffe5b4" -> "Peach",
    "ffdab9" -> "Peach puff",
    "fadfad" -> "Peach yellow",
    "d1e231" -> "Pear",
    "eae0c8" -> "Pearl",
    "88d8c0" -> "Pearl Aqua",
    "e6e200" -> "Peridot",
    "ccccff" -> "Periwinkle",
    "1c39bb" -> "Persian blue",
    "32127a" -> "Persian indigo",
    "d99058" -> "Persian orange",
    "f77fbe" -> "Persian pink",
    "701c1c" -> "Persian plum",
    "cc3333" -> "Persian red",
    "fe28a2" -> "Persian rose",
    "df00ff" -> "Phlox",
    "000f89" -> "Phthalo blue",
    "123524" -> "Phthalo green",
    "fddde6" -> "Piggy pink",
    "01796f" -> "Pine green",
    "ffc0cb" -> "Pink",
    "fc74fd" -> "Pink Flamingo",
    "f78fa7" -> "Pink Sherbet",
    "e7accf" -> "Pink pearl",
    "93c572" -> "Pistachio",
    "e5e4e2" -> "Platinum",
    "dda0dd" -> "Plum",
    "ff5a36" -> "Portland Orange",
    "b0e0e6" -> "Powder blue",
    "ff8f00" -> "Princeton orange",
    "003153" -> "Prussian blue",
    "df00ff" -> "Psychedelic purple",
    "cc8899" -> "Puce",
    "ff7518" -> "Pumpkin",
    "800080" -> "Purple",
    "69359c" -> "Purple Heart",
    "9678b6" -> "Purple mountain majesty",
    "fe4eda" -> "Purple pizzazz",
    "50404d" -> "Purple taupe",
    "5d8aa8" -> "Rackley",
    "ff355e" -> "Radical Red",
    "e30b5d" -> "Raspberry",
    "915f6d" -> "Raspberry glace",
    "e25098" -> "Raspberry pink",
    "b3446c" -> "Raspberry rose",
    "d68a59" -> "Raw Sienna",
    "ff33cc" -> "Razzle dazzle rose",
    "e3256b" -> "Razzmatazz",
    "ff0000" -> "Red",
    "ff5349" -> "Red Orange",
    "a52a2a" -> "Red brown",
    "c71585" -> "Red violet",
    "004040" -> "Rich black",
    "d70040" -> "Rich carmine",
    "0892d0" -> "Rich electric blue",
    "b666d2" -> "Rich lilac",
    "b03060" -> "Rich maroon",
    "414833" -> "Rifle green",
    "ff007f" -> "Rose",
    "f9429e" -> "Rose bonbon",
    "674846" -> "Rose ebony",
    "b76e79" -> "Rose gold",
    "e32636" -> "Rose madder",
    "ff66cc" -> "Rose pink",
    "aa98a9" -> "Rose quartz",
    "905d5d" -> "Rose taupe",
    "ab4e52" -> "Rose vale",
    "65000b" -> "Rosewood",
    "d40000" -> "Rosso corsa",
    "bc8f8f" -> "Rosy brown",
    "0038a8" -> "Royal azure",
    "4169e1" -> "Royal blue",
    "ca2c92" -> "Royal fuchsia",
    "7851a9" -> "Royal purple",
    "e0115f" -> "Ruby",
    "ff0028" -> "Ruddy",
    "bb6528" -> "Ruddy brown",
    "e18e96" -> "Ruddy pink",
    "a81c07" -> "Rufous",
    "80461b" -> "Russet",
    "b7410e" -> "Rust",
    "00563f" -> "Sacramento State green",
    "8b4513" -> "Saddle brown",
    "ff6700" -> "Safety orange",
    "f4c430" -> "Saffron",
    "23297a" -> "Saint Patrick Blue",
    "ff8c69" -> "Salmon",
    "ff91a4" -> "Salmon pink",
    "c2b280" -> "Sand",
    "967117" -> "Sand dune",
    "ecd540" -> "Sandstorm",
    "f4a460" -> "Sandy brown",
    "967117" -> "Sandy taupe",
    "507d2a" -> "Sap green",
    "0f52ba" -> "Sapphire",
    "cba135" -> "Satin sheen gold",
    "ff2400" -> "Scarlet",
    "ffd800" -> "School bus yellow",
    "76ff7a" -> "Screamin Green",
    "006994" -> "Sea blue",
    "2e8b57" -> "Sea green",
    "321414" -> "Seal brown",
    "fff5ee" -> "Seashell",
    "ffba00" -> "Selective yellow",
    "704214" -> "Sepia",
    "8a795d" -> "Shadow",
    "45cea2" -> "Shamrock",
    "009e60" -> "Shamrock green",
    "fc0fc0" -> "Shocking pink",
    "882d17" -> "Sienna",
    "c0c0c0" -> "Silver",
    "cb410b" -> "Sinopia",
    "007474" -> "Skobeloff",
    "87ceeb" -> "Sky blue",
    "cf71af" -> "Sky magenta",
    "6a5acd" -> "Slate blue",
    "708090" -> "Slate gray",
    "003399" -> "Smalt",
    "933d41" -> "Smokey topaz",
    "100c08" -> "Smoky black",
    "fffafa" -> "Snow",
    "0fc0fc" -> "Spiro Disco Ball",
    "a7fc00" -> "Spring bud",
    "00ff7f" -> "Spring green",
    "4682b4" -> "Steel blue",
    "fada5e" -> "Stil de grain yellow",
    "990000" -> "Stizza",
    "008080" -> "Stormcloud",
    "e4d96f" -> "Straw",
    "ffcc33" -> "Sunglow",
    "fad6a5" -> "Sunset",
    "fd5e53" -> "Sunset Orange",
    "d2b48c" -> "Tan",
    "f94d00" -> "Tangelo",
    "f28500" -> "Tangerine",
    "ffcc00" -> "Tangerine yellow",
    "483c32" -> "Taupe",
    "8b8589" -> "Taupe gray",
    "cd5700" -> "Tawny",
    "d0f0c0" -> "Tea green",
    "f4c2c2" -> "Tea rose",
    "008080" -> "Teal",
    "367588" -> "Teal blue",
    "006d5b" -> "Teal green",
    "e2725b" -> "Terra cotta",
    "d8bfd8" -> "Thistle",
    "de6fa1" -> "Thulian pink",
    "fc89ac" -> "Tickle Me Pink",
    "0abab5" -> "Tiffany Blue",
    "e08d3c" -> "Tiger eye",
    "dbd7d2" -> "Timberwolf",
    "eee600" -> "Titanium yellow",
    "ff6347" -> "Tomato",
    "746cc0" -> "Toolbox",
    "ffc87c" -> "Topaz",
    "fd0e35" -> "Tractor red",
    "808080" -> "Trolley Grey",
    "00755e" -> "Tropical rain forest",
    "0073cf" -> "True Blue",
    "417dc1" -> "Tufts Blue",
    "deaa88" -> "Tumbleweed",
    "b57281" -> "Turkish rose",
    "30d5c8" -> "Turquoise",
    "00ffef" -> "Turquoise blue",
    "a0d6b4" -> "Turquoise green",
    "66424d" -> "Tuscan red",
    "8a496b" -> "Twilight lavender",
    "66023c" -> "Tyrian purple",
    "0033aa" -> "UA blue",
    "d9004c" -> "UA red",
    "536895" -> "UCLA Blue",
    "ffb300" -> "UCLA Gold",
    "3cd070" -> "UFO Green",
    "014421" -> "UP Forest green",
    "7b1113" -> "UP Maroon",
    "990000" -> "USC Cardinal",
    "ffcc00" -> "USC Gold",
    "8878c3" -> "Ube",
    "ff6fff" -> "Ultra pink",
    "120a8f" -> "Ultramarine",
    "4166f5" -> "Ultramarine blue",
    "635147" -> "Umber",
    "5b92e5" -> "United Nations blue",
    "b78727" -> "University of California Gold",
    "ffff66" -> "Unmellow Yellow",
    "ae2029" -> "Upsdell red",
    "e1ad21" -> "Urobilin",
    "d3003f" -> "Utah Crimson",
    "f3e5ab" -> "Vanilla",
    "c5b358" -> "Vegas gold",
    "c80815" -> "Venetian red",
    "43b3ae" -> "Verdigris",
    "e34234" -> "Vermilion",
    "a020f0" -> "Veronica",
    "ee82ee" -> "Violet",
    "324ab2" -> "Violet Blue",
    "f75394" -> "Violet Red",
    "40826d" -> "Viridian",
    "922724" -> "Vivid auburn",
    "9f1d35" -> "Vivid burgundy",
    "da1d81" -> "Vivid cerise",
    "ffa089" -> "Vivid tangerine",
    "9f00ff" -> "Vivid violet",
    "004242" -> "Warm black",
    "00ffff" -> "Waterspout",
    "645452" -> "Wenge",
    "f5deb3" -> "Wheat",
    "ffffff" -> "White",
    "f5f5f5" -> "White smoke",
    "ff43a4" -> "Wild Strawberry",
    "fc6c85" -> "Wild Watermelon",
    "a2add0" -> "Wild blue yonder",
    "722f37" -> "Wine",
    "c9a0dc" -> "Wisteria",
    "738678" -> "Xanadu",
    "0f4d92" -> "Yale Blue",
    "ffff00" -> "Yellow",
    "ffae42" -> "Yellow Orange",
    "9acd32" -> "Yellow green",
    "0014a8" -> "Zaffre",
    "2c1608" -> "Zinnwaldite brown")
}
Sarge Borsch
fuente
6

Bueno, ya que lo tuve por ahí , aquí está en Objective-C:

- (NSString*)colorNameFromColor:(NSColor*)chosenColor
{
    NSColor*    calibratedColor = [chosenColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];

    CGFloat  hue;
    CGFloat  saturation;
    CGFloat  brightness;
    [calibratedColor getHue:&hue
                 saturation:&saturation
                 brightness:&brightness
                      alpha:nil];

    // I found that when the saturation was below 1% I couldn't tell
    // the color from gray
    if (saturation <= 0.01)
    {
        saturation = 0.0;
    }

    NSString*   colorName   = @"";

    // If saturation is 0.0, then this is a grayscale color
    if (saturation == 0.0)
    {
        if (brightness <= 0.2)
        {
            colorName = @"black";
        }
        else if (brightness > 0.95)
        {
            colorName = @"white";
        }
        else
        {
            colorName = @"gray";

            if (brightness < 0.33)
            {
                colorName = [@"dark " stringByAppendingString:colorName];
            }
            else if (brightness > 0.66)
            {
                colorName = [@"light " stringByAppendingString:colorName];
            }
        }
    }
    else
    {
        if ((hue <= 15.0 / 360.0) || (hue > 330.0 / 360.0))
        {
            colorName = @"red";
        }
        else if (hue < 45.0 / 360.0)
        {
            colorName = @"orange";
        }
        else if (hue < 70.0 / 360.0)
        {
            colorName = @"yellow";
        }
        else if (hue < 150.0 / 360.0)
        {
            colorName = @"green";
        }
        else if (hue < 190.0 / 360.0)
        {
            colorName = @"cyan";
        }
        else if (hue < 250.0 / 360.0)
        {
            colorName = @"blue";
        }
        else if (hue < 290.0 / 360.0)
        {
            colorName = @"purple";
        }
        else
        {
            colorName = @"magenta";
        }

        if (brightness < 0.5)
        {
            colorName = [@"dark " stringByAppendingString:colorName];
        } 
        else if (brightness > 0.8)
        {
            colorName = [@"bright " stringByAppendingString:colorName];
        }
    }

    return colorName;
}
usuario1118321
fuente
5

Pharo Smalltalk

Ponga esto en un Pharo Workspace e imprímalo .

| color colorNames nearestColorName |
color := Color r: 255 g: 0 b: 0 range: 255.
colorNames := Color registeredColorNames copyWithout: #transparent.
nearestColorName := colorNames detectMin: [ :each | (Color named: each) diff: color].

Los resultados son de calidad mixta. Todos los colores más oscuros se denominan gris , gris oscuro o gris muy oscuro . Probablemente Colorel diff:método podría ser mejor.

Para una visualización muy simple, haga :

((Morph newBounds: (0@0 extent: 200@200 ) color: color) addMorph: nearestColorName asMorph) openInWorld.
MartinW
fuente
5

Macro SAS, basada en los nombres de color SAS V8 (bastante pintorescos) como se documenta aquí: https://v8doc.sas.com/sashtml/gref/zgscheme.htm#zrs-hues

Entrada de muestra:

%rgbname(100,100,50);

Salida de muestra:

Como se ve en Windows 7

EDITAR: actualizado con una versión mucho más compacta.

%macro rgbname(r,g,b);
data _null_;
    infile "C:\temp\colours.csv" dlm = ',' lrecl=32767 missover firstobs = 2 end = eof;
    format name description $32. rgb hls $8.;
    input name description rgb hls;
    R = input(substr(rgb,3,2),hex.);
    G = input(substr(rgb,5,2),hex.);
    B = input(substr(rgb,7,2),hex.);
    retain min_distance outdesc;
    distance = (r-&r)**2 + (g-&g)**2 + (b-&b)**2;
    min_distance = min(distance, min_distance);
    if distance = min_distance then outdesc = description;
    if eof then call symput("COLOUR_NAME", outdesc);
run;
dm log "postmessage ""You meant &COLOUR_NAME""" continue;
%mend rgbname;

Versión XKCD: una estafa descarada de la respuesta principal, pero es una pequeña demostración del motor de URL de nombre de archivo, y no requiere la preparación manual de un CSV:

%macro rgb_xkcd_name(r,g,b);
filename xkcd URL "http://bpaste.net/raw/402634/" debug;
data _null_;
    infile xkcd dlm = ',][' lrecl=32767 missover end = eof;
    format r g b 3. name $32.;
    input r g b name;
    retain min_distance outname;
    distance = (r-&r)**2 + (g-&g)**2 + (b-&b)**2;
    min_distance = min(distance, min_distance);
    if distance = min_distance then outname = name;
    if eof then do;
        call symput("COLOUR_NAME", outname);
        put _all_;
    end;
run;
dm log "postmessage ""XKCD thinks you meant &COLOUR_NAME""" continue;
%mend rgb_xkcd_name;
usuario3490
fuente
5

Solución AC # con Linq y KnownColors de .NET

string GetColorName(int r, int g, int b){
    return Enum.GetValues(typeof(KnownColor))
        .OfType<KnownColor>()
        .Select(x => Color.FromKnownColor(x))
        .Select(x => new {Col = x, Offset = Math.Abs(r - x.R) + Math.Abs(g - x.G) + Math.Abs(b - x.B)})
        .OrderBy(x => x.Offset)
        .Select(x => x.Col)
        .First().Name;
}
liut0
fuente
4

Tcl

Esto hace referencia a los colores X11 de rgb.txt. En mi Ubuntu está dentro, /etc/X11/rgb.txtaunque sé que en algunos sistemas está dentro /usr/lib/X11/rgb.txt. Google rgb.txty descárguelo si no ejecuta X11.

#! /usr/bin/env tclsh

set f [open /etc/X11/rgb.txt]
set raw [read $f]
close $f

set COLORS {}
foreach line [split $raw \n] {
    regexp {(\d+)\s+(\d+)\s+(\d+)\s+(.+)} $line -> r g b name
    if {[info exists name] && $name != ""} {
        lappend COLORS [format %02x%02x%02x $r $g $b] $name
    }
}

proc color_distance {a b} {
    set a [scan $a %2x%2x%2x]
    set b [scan $b %2x%2x%2x]
    set dist 0

    foreach x $a y $b {
        set dist [expr {$dist + (abs($x-$y)**2)}]
    }
    return $dist
}

proc identify {given_color} {
    global COLORS
    set d 0xffffff
    set n "not found"
    set c ""

    foreach {test_color name} $COLORS {
        set dist [color_distance $given_color $test_color]
        if {$dist < $d} {
            set d $dist
            set n $name
            set c $test_color
        }
    }

    return "$n ($c)"
}

puts [identify $argv]

Pase el código de color como argumento de línea de comando.

slebetman
fuente
3

Python 2.6

Con la interfaz de usuario:

Ofuscado (8,397 bytes):

exec("import re;import base64");exec((lambda p,y:(lambda o,b,f:re.sub(o,b,f))(r"([0-9a-f]+)",lambda m:p(m,y),base64.b64decode("MTZkIGI2IGNlICoKMjYgPSB7JyNkOSc6ICc5MScsICcjMTA0JzogJzE3MicsICcjOGInOiAnYTYnLCAnIzEyYyc6ICdhNScsICcjZjcnOiAnMTU4JywgJyNmYic6ICc2OCcsICcjMTE2JzogJzQwJywgJyMxMGQnOiAnNjEnLCAnIzEyYSc6ICc1ZCcsICcjZjgnOiAnOWQnLCAnIzExNyc6ICc3MycsICcjMTQwJzogJzdiJywgJyMxM2MnOiAnM2YnLCAnI2RkJzogJzQxJywgJyNmMyc6ICdmMCcsICcjMTE1JzogJzE3MScsICcjMTM0JzogJzc1JywgJyMxMzknOiAnMTU2JywgJyMxM2QnOiAnNDknLCAnI2QyJzogJzZmJywgJyMxMjknOiAnN2QnLCAnIzE0Mic6ICdjMCcsICcjZmEnOiAnMzcnLCAnI2VlJzogJzkzJywgJyNlZic6ICc4NScsICcjZjEnOiAnMTY2JywgJyNmZSc6ICczYycsICcjZjknOiAnYjEnLCAnIzEyZCc6ICcxMzEnLCAnI2M5JzogJzVhJywgJyMxNTAnOiAnNzYnLCAnI2U5JzogJzMxJywgJyNkMSc6ICdiMicsICcjMTBjJzogJzgzJywgJyMxMzUnOiAnMTU0JywgJyNiOCc6ICc2MycsICcjYmQnOiAnNzAnLCAnI2ZjJzogJzE3MCcsICcjYzMnOiAnOTknLCAnI2JiJzogJzE2OScsICcjMTFlJzogJzdmJywgJyNmNSc6ICc2MicsICcjMTFmJzogJzJhJywgJyNkNCc6ICc3NycsICcjMTAyJzogJ2YnLCAnIzEyMic6ICc0YicsICcjMTAzJzogJ2E3JywgJyNlMSc6ICcxMzAnLCAnIzE0ZCc6ICc1OScsICcjZjQnOiAnNzgnLCAnI2U4JzogJzI0JywgJyNjMic6ICdhYScsICcjMTA3JzogJzY0JywgJyNlYic6ICc4ZicsICcjMTNiJzogJzcyJywgJyNiOSc6ICdhZicsICcjMTJiJzogJzM5JywgJyNjNCc6ICdhYicsICcjZGMnOiAnMTVmJywgJyMxNGYnOiAnYTQnLCAnI2RlJzogJzE1YicsICcjMTM2JzogJzE1NycsICcjZTcnOiAnZWMnLCAnIzExMSc6ICcxNmMnLCAnIzE1MSc6ICc2NicsICcjMTJmJzogJzExYycsICcjZTUnOiAnNWMnLCAnIzExYic6ICcxNmInLCAnIzEyNic6ICcxNTUnLCAnI2U2JzogJzJlJywgJyNiZic6ICc4NCcsICcjZTInOiAnMTdmJywgJyMxMzInOiAnM2InLCAnI2ZmJzogJzFiJywgJyNiYyc6ICcxM2EnLCAnIzE0NCc6ICc0YycsICcjYzUnOiAnMTY4JywgJyNlNCc6ICc2YycsICcjMTE4JzogJzE3NScsICcjY2MnOiAnMTVkJywgJyMxMGYnOiAnNWInLCAnIzEwOSc6ICcxNjcnLCAnIzEyZSc6ICc5NScsICcjMTBlJzogJzk0JywgJyNlYSc6ICczMicsICcjMTRhJzogJzM1JywgJyMxMTInOiAnMTQxJywgJyNiNyc6ICc4NycsICcjMTEzJzogJ2EzJywgJyNkNic6ICc4ZScsICcjZTMnOiAnOWMnLCAnI2RhJzogJzZlJywgJyNkNyc6ICczOCcsICcjYmUnOiAnNTAnLCAnIzE0Yic6ICc5NycsICcjMTIwJzogJzE1ZScsICcjMTUzJzogJ2FlJywgJyMxMTknOiAnNGUnLCAnIzEwMCc6ICdiMCcsICcjMTUyJzogJzdhJywgJyMxMDYnOiAnMTQ4JywgJyNkOCc6ICc0MycsICcjMTI3JzogJzM2JywgJyNkYic6ICc1NScsICcjMTM4JzogJzQ1JywgJyNjNic6ICcxNmEnLCAnI2VkJzogJzE2NCcsICcjMTI4JzogJzhkJywgJyMxMWQnOiAnN2MnLCAnI2Q1JzogJzE3MycsICcjY2EnOiAnODknLCAnI2NmJzogJ2FjJywgJyMxNGUnOiAnODInLCAnIzEwYSc6ICc0OCcsICcjMTQ3JzogJzVlJywgJyMxMzMnOiAnM2QnLCAnIzEwOCc6ICc4YScsICcjYmEnOiAnOWUnLCAnIzEyMyc6ICcxMjUnLCAnI2QzJzogJzk4JywgJyNmNic6ICc3OScsICcjY2QnOiAnNmInLCAnIzEzNyc6ICc2MCcsICcjMTNlJzogJ2QwJywgJyMxM2YnOiAnMzMnLCAnIzExNCc6ICdhMicsICcjMTBiJzogJzVmJywgJyNjYic6ICc2OScsICcjMTQzJzogJzI1JywgJyMxMjQnOiAnOTInLCAnIzExYSc6ICc5YScsICcjZGYnOiAnM2UnLCAnI2M4JzogJ2I1JywgJyNjMSc6ICc0MicsICcjZjInOiAnNjcnLCAnIzgwJzogJzE3NCcsICcjZmQnOiAnYzcnLCAnIzE0NSc6ICc5MCd9Cgo1MiAyMSgxMyk6CgkxMyA9IDEzLjE0NignIycpCgk5ZiA9IDE3OSgxMykKCTExIDE2MSg1NCgxM1sxNzg6MTc4KzlmLzNdLCAxNikgZTAgMTc4IDRmIDIyKDAsIDlmLCA5Zi8zKSkKCjE2MiAxYyg2YSk6CgkKCTUyIDJiKDU2LCA0ZCk6CgkJNmEuMmIoNTYsIDRkKQoJCTU2LjY1KCkKCQk1Ni5hOSgpCgkKCTUyIGE5KDU2KToKCQk1Ni5iID0gMTg4KDU2LCA0NCA9ICIxNjAgNGYgYSAxMTAgMTMuIikKCQk1Ni5iLjY1KDE4MiA9IDEsIDE3YyA9IDAsIDE4NyA9IDMpCgkJCgkJNTYuMmMgPSAxODgoNTYsIDQ0ID0gIjE3YiIpCgkJNTYuMmMuNjUoMTgyID0gMiwgMTdjID0gMCwgMTkgPSA1LCAxOCA9IDUpCgkJNTYuMWEgPSAzMCg1NikKCQk1Ni4xYS42NSgxODIgPSAzLCAxN2MgPSAwLCAxOSA9IDUsIDE4ID0gNSkKCQkKCQk1Ni40YSA9IDE4OCg1NiwgNDQgPSAiMTVjIikKCQk1Ni40YS42NSgxODIgPSAyLCAxN2MgPSAxLCAxOSA9IDUsIDE4ID0gNSkKCQk1Ni4xMCA9IDMwKDU2KQoJCTU2LjEwLjY1KDE4MiA9IDMsIDE3YyA9IDEsIDE5ID0gNSwgMTggPSA1KQoJCQoJCTU2LjI4ID0gMTg4KDU2LCA0NCA9ICIxNmUiKQoJCTU2LjI4LjY1KDE4MiA9IDIsIDE3YyA9IDIsIDE5ID0gNSwgMTggPSA1KQoJCTU2LjE4NiA9IDMwKDU2KQoJCTU2LjE4Ni42NSgxODIgPSAzLCAxN2MgPSAyLCAxOSA9IDUsIDE4ID0gNSkKCgkJNTYuNDcgPSAxNGMoNTYsIDQ0ID0gImFkIiwgYjMgPSA1Ni4zNCkKCQk1Ni40Ny42NSgxODIgPSA0LCAxN2MgPSAwLCAxODcgPSAzKQoKCQk1Ni4xNTkgPSAxODgoNTYpCgkJNTYuMTU5LjY1KDE4MiA9IDUsIDE3YyA9IDAsIDE4NyA9IDMpCgoJCTU2LmMgPSA1OCg1NiwgNzEgPSAxNDksIDQ2ID0gMjApCgkJNTYuYy42NSgxODIgPSA2LCAxN2MgPSAwLCAxODcgPSAzKQoKCQk1Ni4xMiA9IDE4OCg1NikKCQk1Ni4xMi42NSgxODIgPSA2LCAxN2MgPSAwLCA1MSA9IDE4NSkKCQkKCQk1Ni44ID0gNTgoNTYsIDcxID0gMTQ5LCA0NiA9IDIwKQoJCTU2LjguNjUoMTgyID0gNywgMTdjID0gMCwgMTg3ID0gMykKCgkJNTYuZCA9IDE4OCg1NikKCQk1Ni5kLjY1KDE4MiA9IDcsIDE3YyA9IDAsIDUxID0gMTg1KQoKCTUyIDM0KDU2KToKCQkxNzc6CgkJCTI1ID0gNTQoNTYuMWEuODgoKSkKCQkJZiA9IDU0KDU2LjEwLjg4KCkpCgkJCTFiID0gNTQoNTYuMTg2Ljg4KCkpCgkJMTAxIDc0OgoJCQk1Ni4xNTlbIjQ0Il0gPSAiMjMgNTcgMWQgMWUgMTQuIgoJCQkxMQoKCQkxMjEgMjUgMWQgNGYgMjIoOGMpOgoJCQk1Ni4xNTlbIjQ0Il0gPSAiMjMgNTcgMWQgMWUgMTQuIgoJCQkxMQoJCTEyMSBmIDFkIDRmIDIyKDhjKToKCQkJNTYuMTU5WyI0NCJdID0gIjIzIDU3IDFkIDFlIDE0LiIKCQkJMTEKCQkxMjEgMWIgMWQgNGYgMjIoOGMpOgoJCQk1Ni4xNTlbIjQ0Il0gPSAiMjMgNTcgMWQgMWUgMTQuIgoJCQkxMQoJCQoJCTkgPSB7fQoJCTI3ID0ge30KCQllMCAxODMsIDE1IDRmIDI2LjE1YSgpOgoJCQkyN1sxNV0gPSAxODMKCQkJYTgsIDUzLCA2ZCA9IDIxKDE4MykKCQkJM2EgPSA4NihhOCAtIDI1KQoJCQkyOSA9IDg2KDUzIC0gZikKCQkJMmYgPSA4Nig2ZCAtIDFiKQoJCQk5WzNhICsgMjkgKyAyZl0gPSAxNQoJCTE3ID0gOVsxN2UoOS4xNzYoKSldOwoKCQkxODMgPSAyN1sxN10KCgkJMmQgPSAnIyU4MSU4MSU4MScgJSAoMjUsIGYsIDFiKQoJCQoJCTU2LjE1OVsiNDQiXSA9ICIxN2QgMTcgMTg0ICIgKyAgMTcKCQk1Ni4xMlsiNDQiXSA9ICIoIiArIDk2KDI1KSArICIsICIgKyA5NihmKSArICIsICIgKyA5NigxYikgKyAiKSIKCQk1Ni5kWyI0NCJdID0gMTcKCQk1Ni5jLmUoMjAsIDAsIDEwNSwgMjAsIGEwID0gMmQpCgkJNTYuOC5lKDIwLCAwLCAxMDUsIDIwLCBhMCA9IDE4MykKCjFmID0gMTgxKCkKMWYuMTY1KCIxMTAgMTgwIDE2MyAxNmYgN2UiKQoxZi45YigiYjQiKQoxN2EgPSAxYygxZikKCjFmLmExKCk=")))(lambda a,b:b[int("0x"+a.group(1),16)],"0|1|2|3|4|5|6|7|colorCanvas1|colorDifs|a|instructionsLabel|colorCanvas|canvasText1|create_rectangle|green|greenEntry|return|canvasText|value|numbers|colorName|16|color|pady|padx|redEntry|blue|Application|not|valid|root|20|hex_to_rgb|range|Those|lightgoldenrodyellow|red|colorlist|colors|blueLabel|green_dif|mediumspringgreen|__init__|redLabel|rectFill|mediumaquamarine|blue_dif|Entry|mediumslateblue|mediumvioletred|mediumturquoise|convert|lightsteelblue|darkolivegreen|cornflowerblue|lightslategrey|mediumseagreen|red_dif|blanchedalmond|darkturquoise|darkslateblue|lightseagreen|darkslategray|darkgoldenrod|paleturquoise|lavenderblush|palevioletred|text|palegoldenrod|height|submit|lightskyblue|darkseagreen|greenLabel|antiquewhite|lemonchiffon|master|midnightblue|in|mediumorchid|sticky|def|green1|int|mediumpurple|self|are|Canvas|forestgreen|greenyellow|lightyellow|saddlebrown|darkmagenta|navajowhite|yellowgreen|deepskyblue|floralwhite|lightsalmon|springgreen|sandybrown|grid|lightgreen|blueviolet|darkviolet|lightcoral|Frame|mediumblue|whitesmoke|blue1|darksalmon|aquamarine|papayawhip|width|darkorchid|darkorange|ValueError|dodgerblue|powderblue|ghostwhite|chartreuse|darkgreen|darkkhaki|cadetblue|chocolate|mistyrose|Converter|indianred|000080|02x|lightcyan|steelblue|firebrick|turquoise|abs|slategray|get|palegreen|limegreen|00008b|256|rosybrown|slateblue|olivedrab|peachpuff|lawngreen|burlywood|royalblue|goldenrod|aliceblue|str|orangered|lightgray|mintcream|lightpink|geometry|seagreen|seashell|lavender|lv|fill|mainloop|darkcyan|deeppink|darkgray|moccasin|darkblue|honeydew|red1|loop|cornsilk|thistle|hotpink|Convert|dimgrey|oldlace|crimson|darkred|magenta|command|460x180|skyblue|Tkinter|708090|00ff7f|fdf5e6|e6e6fa|dda0dd|da70d6|ffefd5|ba55d3|b22222|maroon|fff0f5|fff8dc|f5fffa|d8bfd8|ff7f50|cd853f|gainsboro|87ceeb|adff2f|98fb98|f08080|f0e68c|0000cd|import|ff69b4|bisque|ff00ff|7fffd4|d3d3d3|f8f8ff|008080|6a5acd|778899|d87093|7cfc00|e9967a|9370d8|808000|afeeee|f5f5dc|20b2aa|for|c0c0c0|d2b48c|2e8b57|f5f5f5|8b4513|66cdaa|ffa500|fafad2|7b68ee|c71585|6b8e23|orange|faf0e6|4169e1|40e0d0|lightblue|ffffff|8a2be2|add8e6|7fff00|ffa07a|006400|fffff0|fff5ee|8b0000|6495ed|9400d3|ffd700|dcdcdc|00ced1|0000ff|dc143c|except|008000|f0fff0|808080|440|ffff00|f4a460|32cd32|f0ffff|87cefa|9acd32|4682b4|fffaf0|daa520|ffffe0|RGB|00ff00|fa8072|ff1493|008b8b|fffafa|b8860b|ff8c00|ffc0cb|191970|ffb6c1|00ffff|sienna|d2691e|cd5c5c|00fa9a|a52a2a|if|faebd7|800080|deb887|purple|4b0082|556b2f|bc8f8f|ffe4e1|8b008b|3cb371|ffe4b5|ee82ee|f0f8ff|a0522d|silver|violet|ffebcd|483d8b|1e90ff|ff6347|f5deb3|00bfff|eee8aa|000000|orchid|9932cc|2f4f4f|8fbc8f|ffe4c4|48d1cc|5f9ea0|salmon|800000|ff0000|fffacd|ffdab9|lstrip|ffdead|yellow|460|b0c4de|ff4500|Button|228b22|e0ffff|a9a9a9|b0e0e6|90ee90|bdb76b|696969|tomato|indigo|black|wheat|ivory|colorLabel|items|beige|Green|khaki|brown|olive|Enter|tuple|class|Color|linen|title|white|azure|coral|plum|peru|aqua|lime|from|Blue|Name|gold|snow|grey|teal|navy|pink|keys|try|i|len|app|Red|column|The|min|tan|to|Tk|row|hexValue|is|W|blueEntry|columnspan|Label".split("|")))

No ofuscado (6,898 bytes):

from Tkinter import *
colorlist = {'#7cfc00': 'lawngreen', '#808080': 'grey', '#00008b': 'darkblue', '#ffe4b5': 'moccasin', '#fffff0': 'ivory', '#9400d3': 'darkviolet', '#b8860b': 'darkgoldenrod', '#fffaf0': 'floralwhite', '#8b008b': 'darkmagenta', '#fff5ee': 'seashell', '#ff8c00': 'darkorange', '#5f9ea0': 'cadetblue', '#2f4f4f': 'darkslategray', '#afeeee': 'paleturquoise', '#add8e6': 'lightblue', '#fffafa': 'snow', '#1e90ff': 'dodgerblue', '#000000': 'black', '#8fbc8f': 'darkseagreen', '#7fffd4': 'aquamarine', '#ffe4e1': 'mistyrose', '#800000': 'maroon', '#6495ed': 'cornflowerblue', '#4169e1': 'royalblue', '#40e0d0': 'turquoise', '#ffffff': 'white', '#00ced1': 'darkturquoise', '#8b0000': 'darkred', '#ee82ee': 'violet', '#adff2f': 'greenyellow', '#b0e0e6': 'powderblue', '#7b68ee': 'mediumslateblue', '#ff00ff': 'magenta', '#4682b4': 'steelblue', '#ff6347': 'tomato', '#00ff7f': 'springgreen', '#ffefd5': 'papayawhip', '#ffd700': 'gold', '#f5fffa': 'mintcream', '#dda0dd': 'plum', '#cd5c5c': 'indianred', '#ffa07a': 'lightsalmon', '#00fa9a': 'mediumspringgreen', '#f8f8ff': 'ghostwhite', '#008000': 'green', '#faebd7': 'antiquewhite', '#f0fff0': 'honeydew', '#c0c0c0': 'silver', '#228b22': 'forestgreen', '#7fff00': 'chartreuse', '#fafad2': 'lightgoldenrodyellow', '#fff8dc': 'cornsilk', '#f4a460': 'sandybrown', '#6b8e23': 'olivedrab', '#9932cc': 'darkorchid', '#fdf5e6': 'oldlace', '#3cb371': 'mediumseagreen', '#d8bfd8': 'thistle', '#808000': 'olive', '#a9a9a9': 'darkgray', '#f5f5dc': 'beige', '#f5deb3': 'wheat', '#ffa500': 'orange', '#00ff00': 'lime', '#90ee90': 'lightgreen', '#a0522d': 'sienna', '#8b4513': 'saddlebrown', '#00ffff': 'aqua', '#4b0082': 'indigo', '#66cdaa': 'mediumaquamarine', '#b22222': 'firebrick', '#d2b48c': 'tan', '#ffebcd': 'blanchedalmond', '#0000ff': 'blue', '#da70d6': 'orchid', '#fffacd': 'lemonchiffon', '#ff7f50': 'coral', '#f5f5f5': 'whitesmoke', '#ffc0cb': 'pink', '#f0e68c': 'khaki', '#ffffe0': 'lightyellow', '#f0ffff': 'azure', '#f0f8ff': 'aliceblue', '#daa520': 'goldenrod', '#c71585': 'mediumvioletred', '#b0c4de': 'lightsteelblue', '#fa8072': 'salmon', '#708090': 'slategray', '#ff1493': 'deeppink', '#6a5acd': 'slateblue', '#2e8b57': 'seagreen', '#e9967a': 'darksalmon', '#778899': 'lightslategrey', '#ba55d3': 'mediumorchid', '#ff4500': 'orangered', '#a52a2a': 'brown', '#696969': 'dimgrey', '#191970': 'midnightblue', '#dc143c': 'crimson', '#bdb76b': 'darkkhaki', '#ffff00': 'yellow', '#d87093': 'palevioletred', '#556b2f': 'darkolivegreen', '#9370d8': 'mediumpurple', '#eee8aa': 'palegoldenrod', '#cd853f': 'peru', '#faf0e6': 'linen', '#bc8f8f': 'rosybrown', '#d2691e': 'chocolate', '#008080': 'teal', '#98fb98': 'palegreen', '#ff69b4': 'hotpink', '#e0ffff': 'lightcyan', '#87cefa': 'lightskyblue', '#ffdead': 'navajowhite', '#483d8b': 'darkslateblue', '#32cd32': 'limegreen', '#e6e6fa': 'lavender', '#800080': 'purple', '#d3d3d3': 'lightgray', '#006400': 'darkgreen', '#0000cd': 'mediumblue', '#00bfff': 'deepskyblue', '#ffe4c4': 'bisque', '#48d1cc': 'mediumturquoise', '#008b8b': 'darkcyan', '#9acd32': 'yellowgreen', '#f08080': 'lightcoral', '#ff0000': 'red', '#deb887': 'burlywood', '#ffb6c1': 'lightpink', '#20b2aa': 'lightseagreen', '#87ceeb': 'skyblue', '#fff0f5': 'lavenderblush', '#8a2be2': 'blueviolet', '#000080': 'navy', '#dcdcdc': 'gainsboro', '#ffdab9': 'peachpuff'}

def hex_to_rgb(value):
    value = value.lstrip('#')
    lv = len(value)
    return tuple(int(value[i:i+lv/3], 16) for i in range(0, lv, lv/3))

class Application(Frame):

    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.loop()

    def loop(self):
        self.instructionsLabel = Label(self, text = "Enter in a RGB value.")
        self.instructionsLabel.grid(row = 1, column = 0, columnspan = 3)

        self.redLabel = Label(self, text = "Red")
        self.redLabel.grid(row = 2, column = 0, padx = 5, pady = 5)
        self.redEntry = Entry(self)
        self.redEntry.grid(row = 3, column = 0, padx = 5, pady = 5)

        self.greenLabel = Label(self, text = "Green")
        self.greenLabel.grid(row = 2, column = 1, padx = 5, pady = 5)
        self.greenEntry = Entry(self)
        self.greenEntry.grid(row = 3, column = 1, padx = 5, pady = 5)

        self.blueLabel = Label(self, text = "Blue")
        self.blueLabel.grid(row = 2, column = 2, padx = 5, pady = 5)
        self.blueEntry = Entry(self)
        self.blueEntry.grid(row = 3, column = 2, padx = 5, pady = 5)

        self.submit = Button(self, text = "Convert", command = self.convert)
        self.submit.grid(row = 4, column = 0, columnspan = 3)

        self.colorLabel = Label(self)
        self.colorLabel.grid(row = 5, column = 0, columnspan = 3)

        self.colorCanvas = Canvas(self, width = 460, height = 20)
        self.colorCanvas.grid(row = 6, column = 0, columnspan = 3)

        self.canvasText = Label(self)
        self.canvasText.grid(row = 6, column = 0, sticky = W)

        self.colorCanvas1 = Canvas(self, width = 460, height = 20)
        self.colorCanvas1.grid(row = 7, column = 0, columnspan = 3)

        self.canvasText1 = Label(self)
        self.canvasText1.grid(row = 7, column = 0, sticky = W)

    def convert(self):
        try:
            red = int(self.redEntry.get())
            green = int(self.greenEntry.get())
            blue = int(self.blueEntry.get())
        except ValueError:
            self.colorLabel["text"] = "Those are not valid numbers."
            return

        if red not in range(256):
            self.colorLabel["text"] = "Those are not valid numbers."
            return
        if green not in range(256):
            self.colorLabel["text"] = "Those are not valid numbers."
            return
        if blue not in range(256):
            self.colorLabel["text"] = "Those are not valid numbers."
            return

        colorDifs = {}
        colors = {}
        for hexValue, colorName in colorlist.items():
            colors[colorName] = hexValue
            red1, green1, blue1 = hex_to_rgb(hexValue)
            red_dif = abs(red1 - red)
            green_dif = abs(green1 - green)
            blue_dif = abs(blue1 - blue)
            colorDifs[red_dif + green_dif + blue_dif] = colorName
        color = colorDifs[min(colorDifs.keys())];

        hexValue = colors[color]

        rectFill = '#%02x%02x%02x' % (red, green, blue)

        self.colorLabel["text"] = "The color is " +  color
        self.canvasText["text"] = "(" + str(red) + ", " + str(green) + ", " + str(blue) + ")"
        self.canvasText1["text"] = color
        self.colorCanvas.create_rectangle(20, 0, 440, 20, fill = rectFill)
        self.colorCanvas1.create_rectangle(20, 0, 440, 20, fill = hexValue)

root = Tk()
root.title("RGB to Color Name Converter")
root.geometry("460x180")
app = Application(root)

root.mainloop()

UI Números inválidos Números inválidos

Sin interfaz de usuario:

Ofuscado (6.543 bytes):

exec("import re;import base64");exec((lambda p,y:(lambda o,b,f:re.sub(o,b,f))(r"([0-9a-f]+)",lambda m:p(m,y),base64.b64decode("MTMgPSB7JyMxMGYnOiAnNTcnLCAnIzExOCc6ICcxMzgnLCAnIzhiJzogJzc5JywgJyNmYyc6ICc3NScsICcjZDgnOiAnMTI2JywgJyNjNic6ICc1NScsICcjYTMnOiAnMjknLCAnIzkwJzogJzNkJywgJyNmMyc6ICc0MScsICcjZGEnOiAnNzcnLCAnIzEwMic6ICc0NycsICcjZTQnOiAnNWQnLCAnI2IxJzogJzJjJywgJyMxMTUnOiAnMmEnLCAnI2NjJzogJzcwJywgJyM5ZCc6ICcxM2UnLCAnIzhjJzogJzQ5JywgJyMxNGMnOiAnMTI5JywgJyNiMic6ICczNicsICcjZmInOiAnNDgnLCAnI2YwJzogJzY1JywgJyNkYyc6ICdhNScsICcjZTInOiAnMjEnLCAnI2JiJzogJzViJywgJyMxMjQnOiAnNjcnLCAnI2M3JzogJzEyYScsICcjZjYnOiAnMmUnLCAnI2RlJzogJzgxJywgJyMxMDEnOiAnMTFjJywgJyNkNSc6ICczYicsICcjMTA5JzogJzRiJywgJyNhOSc6ICcxZCcsICcjZjUnOiAnODQnLCAnIzkxJzogJzU4JywgJyM4ZCc6ICcxMWEnLCAnIzk1JzogJzQzJywgJyM5YSc6ICc1MCcsICcjZDMnOiAnMTNiJywgJyNiNic6ICc1ZScsICcjOTMnOiAnMTNhJywgJyNiZic6ICc2YycsICcjZjknOiAnM2YnLCAnI2MzJzogJzE0ZScsICcjMTAzJzogJzUyJywgJyMxMTAnOiAnMTRmJywgJyNjZic6ICczNCcsICcjMTE2JzogJzc2JywgJyM4Zic6ICcxMTknLCAnI2ZkJzogJzM5JywgJyNjZSc6ICc1NCcsICcjYTgnOiAnMTInLCAnI2FjJzogJzdlJywgJyMxMWQnOiAnNDUnLCAnI2IzJzogJzU5JywgJyNhYic6ICc1MycsICcjYjUnOiAnODYnLCAnI2Y4JzogJzIzJywgJyNiZSc6ICc4MicsICcjMTEzJzogJzEyZScsICcjZWInOiAnN2YnLCAnIzEyMic6ICcxMmInLCAnI2RkJzogJzEzMycsICcjOWUnOiAnYjQnLCAnI2Y3JzogJzEzNycsICcjMTBlJzogJzQ2JywgJyNkZic6ICdiYycsICcjY2InOiAnNDAnLCAnI2I4JzogJzEzNicsICcjMTA2JzogJzExZScsICcjOWMnOiAnMTgnLCAnIzlmJzogJzY0JywgJyM5Mic6ICcxNDgnLCAnIzExZic6ICcyNicsICcjZmYnOiAnNScsICcjOTYnOiAnYTInLCAnI2UwJzogJzM4JywgJyNjMCc6ICcxMzUnLCAnIzk4JzogJzUxJywgJyNhZSc6ICcxNDAnLCAnI2U3JzogJzEyNScsICcjOTcnOiAnM2MnLCAnIzEyMyc6ICcxMzEnLCAnI2M4JzogJzY4JywgJyM5OSc6ICc2NicsICcjYWQnOiAnMWMnLCAnI2Y0JzogJzI1JywgJyNiYSc6ICdkYicsICcjYzEnOiAnNmInLCAnI2UxJzogJzdjJywgJyMxMGEnOiAnNjEnLCAnI2Q5JzogJzdhJywgJyNhMCc6ICc0YScsICcjZWMnOiAnMjQnLCAnI2M5JzogJzM3JywgJyM5NCc6ICc2ZCcsICcjYzQnOiAnMTJkJywgJyMxMTcnOiAnODUnLCAnI2IwJzogJzMwJywgJyMxMDQnOiAnODgnLCAnI2ZlJzogJzVjJywgJyMxMWInOiAnZWYnLCAnIzEwZCc6ICcyNycsICcjZTgnOiAnMjInLCAnIzExMSc6ICczMScsICcjOGUnOiAnMmYnLCAnI2NhJzogJzEzYycsICcjYjknOiAnMTI3JywgJyNlYSc6ICc2MCcsICcjYmQnOiAnNjMnLCAnIzEwOCc6ICcxMzknLCAnI2Q2JzogJzcyJywgJyMxMDUnOiAnODMnLCAnI2FmJzogJzczJywgJyMxMGMnOiAnMzUnLCAnI2VlJzogJzNhJywgJyM4OSc6ICcyZCcsICcjMTIwJzogJzVhJywgJyNhYSc6ICc3OCcsICcjMTA3JzogJ2Q3JywgJyMxMDAnOiAnNmYnLCAnI2VkJzogJzU2JywgJyNjZCc6ICc0ZScsICcjMTEyJzogJzQyJywgJyNjNSc6ICdmMicsICcjYzInOiAnMWYnLCAnIzliJzogJzhhJywgJyNkMCc6ICczZScsICcjYTQnOiAnNDQnLCAnIzEwYic6ICdhJywgJyNkNCc6ICc2YScsICcjYjcnOiAnNzQnLCAnIzExNCc6ICcyYicsICcjZDEnOiAnODcnLCAnI2E3JzogJzI4JywgJyNmYSc6ICc0YycsICcjODAnOiAnMTNmJywgJyNlNic6ICc1ZicsICcjZTMnOiAnNzEnfQoxMjEgMTAoNyk6Cgk3ID0gNy5lOSgnIycpCgk3YiA9IDE0OSg3KQoJMzIgMTM0KGUoN1sxNDY6MTQ2KzdiLzNdLCAxNikgZjEgMTQ2IDRkIGYoMTRjLCA3YiwgN2IvMykpCgoxMjEgMWIoNik6CglkID0ge307CglmMSAxYSwgNCA0ZCAxMy4xMzIoKToKCQlhLCAxNGYsIDUgPSAxMCgxYSk7CgkJMjAgPSA2OShhIC0gNlsxNGNdKTsKCQkxNSA9IDY5KDE0ZiAtIDZbMV0pCgkJMTcgPSA2OSg1IC0gNlsyXSkKCQlkWzIwICsgMTUgKyAxN10gPSA0CgkzMiBkWzE0NShkLjEzZCgpKV07CgoxMSAxOToKCgljICJhNiAxMjggMTQ0IDE0MiA3LiI7CglhMSgiLS0xMmYgMTJjIDE0ZCA3ZC0tXDRmPiAiKTsKCglhLCAxNGYsIDUgPSAiIiwgIiIsICIiOwoJYSA9IGExKCIxNDdcNGY+ICIpOwoJMTEgMTk6CgkJYjoKCQkJZTUgZShhKSA2MiA0ZCBmKDZlKToKCQkJCWEgPSBhMSgiLS0xNGItLVwxNTAgYiA4XDRmPiAiKTsKCQkJMzM6CgkJCQkxZTsKCQkxNCA5OgoJCQlhID0gYTEoIi0tMTRiLS1cMTUwIGIgOFw0Zj4gIik7CgoJMTRmID0gYTEoIjEzMFw0Zj4gIik7CgkxMSAxOToKCQliOgoJCQllNSBlKDE0ZikgNjIgNGQgZig2ZSk6CgkJCQkxNGYgPSBhMSgiLS0xNGItLVwxNTAgYiA4XDRmPiAiKTsKCQkJMzM6CgkJCQkxZTsKCQkxNCA5OgoJCQkxNGYgPSBhMSgiLS0xNGItLVwxNTAgYiA4XDRmPiAiKTsKCgk1ID0gYTEoIjE0MVw0Zj4gIik7CgkxMSAxOToKCQliOgoJCQllNSBlKDUpIDYyIDRkIGYoNmUpOgoJCQkJNSA9IGExKCItLTE0Yi0tXDE1MCBiIDhcNGY+ICIpOwoJCQkzMzoKCQkJCTFlOwoJCTE0IDk6CgkJCTUgPSBhMSgiLS0xNGItLVwxNTAgYiA4XDRmPiAiKTsKCglkMiA9IChlKGEpLCBlKDE0ZiksIGUoNSkpOwoJNCA9IDFiKGQyKTsKCgljICIxNDMgMWIgMTRhIiwgNDsKCWMKCWMKCWM=")))(lambda a,b:b[int("0x"+a.group(1),16)],"000000|1|2|3|colorName|blue|rgbValue|value|again|ValueError|red|try|print|colors|int|range|hex_to_rgb|while|lightgoldenrodyellow|colorlist|except|green_dif|16|blue_dif|mediumaquamarine|True|hexValue|color|mediumvioletred|mediumslateblue|break|mediumturquoise|red_dif|cornflowerblue|darkolivegreen|mediumseagreen|lightslategrey|lightsteelblue|blanchedalmond|palevioletred|lavenderblush|darkgoldenrod|paleturquoise|lightseagreen|darkslategray|darkslateblue|darkturquoise|palegoldenrod|midnightblue|mediumpurple|return|else|antiquewhite|lightskyblue|darkseagreen|mediumorchid|lemonchiffon|forestgreen|navajowhite|greenyellow|lightyellow|floralwhite|yellowgreen|lightsalmon|saddlebrown|darkmagenta|deepskyblue|springgreen|lightcoral|sandybrown|lightgreen|darkorange|aquamarine|dodgerblue|darksalmon|powderblue|blueviolet|in|mediumblue|n|papayawhip|whitesmoke|ghostwhite|darkorchid|chartreuse|darkviolet|darkgreen|lawngreen|steelblue|olivedrab|limegreen|royalblue|darkkhaki|cadetblue|mintcream|gainsboro|rosybrown|slateblue|not|chocolate|firebrick|mistyrose|goldenrod|turquoise|aliceblue|abs|burlywood|slategray|indianred|orangered|256|lightgray|lightblue|peachpuff|palegreen|lightcyan|lightpink|moccasin|honeydew|seashell|lavender|darkblue|seagreen|lv|deeppink|continue|cornsilk|darkgray|000080|darkred|thistle|hotpink|magenta|dimgrey|oldlace|skyblue|crimson|483d8b|darkcyan|00008b|1e90ff|ff6347|eee8aa|c0c0c0|fffaf0|4682b4|d2b48c|dda0dd|ff4500|00ff7f|da70d6|ffffe0|f5f5f5|daa520|ffefd5|008b8b|66cdaa|fffafa|ffa500|b22222|e9967a|raw_input|orchid|b8860b|f08080|maroon|Please|fff0f5|fafad2|7b68ee|e6e6fa|9932cc|fff8dc|c71585|ffc0cb|e0ffff|191970|2f4f4f|8fbc8f|6b8e23|orange|fdf5e6|f5fffa|ffb6c1|00ffff|faf0e6|fa8072|4169e1|sienna|d2691e|d8bfd8|cd5c5c|ff7f50|708090|48d1cc|00fa9a|a52a2a|ffe4c4|9400d3|ffffff|f0f8ff|ba55d3|cd853f|8b4513|add8e6|0000cd|7fff00|faebd7|9acd32|87ceeb|rgb|ffd700|deb887|adff2f|98fb98|purple|fffff0|2e8b57|fff5ee|salmon|800000|f5deb3|8b0000|a0522d|fffacd|ff1493|6495ed|ffdab9|5f9ea0|if|dcdcdc|f0e68c|556b2f|lstrip|bc8f8f|a9a9a9|778899|006400|ffdead|yellow|ffe4e1|for|bisque|8b008b|b0c4de|ff00ff|00ced1|00ff00|3cb371|ffa07a|8a2be2|7fffd4|ffe4b5|228b22|bdb76b|0000ff|d3d3d3|ee82ee|ff8c00|f8f8ff|dc143c|ff69b4|4b0082|800080|008080|b0e0e6|6a5acd|ff0000|87cefa|d87093|90ee90|7cfc00|008000|9370d8|00bfff|808000|20b2aa|afeeee|f0fff0|696969|808080|silver|tomato|ffff00|violet|f4a460|indigo|ffebcd|32cd32|def|f5f5dc|f0ffff|40e0d0|khaki|ivory|linen|input|black|white|beige|ENTER|brown|olive|Press|GREEN|azure|items|wheat|tuple|coral|aqua|lime|grey|teal|plum|gold|peru|keys|snow|navy|pink|BLUE|RGB|The|the|min|i|RED|tan|len|is|INVALID|0|to|mediumspringgreen|green|nPlease".split("|")))

No ofuscado (5.050 bytes):

colorlist = {'#7cfc00': 'lawngreen', '#808080': 'grey', '#00008b': 'darkblue', '#ffe4b5': 'moccasin', '#fffff0': 'ivory', '#9400d3': 'darkviolet', '#b8860b': 'darkgoldenrod', '#fffaf0': 'floralwhite', '#8b008b': 'darkmagenta', '#fff5ee': 'seashell', '#ff8c00': 'darkorange', '#5f9ea0': 'cadetblue', '#2f4f4f': 'darkslategray', '#afeeee': 'paleturquoise', '#add8e6': 'lightblue', '#fffafa': 'snow', '#1e90ff': 'dodgerblue', '#000000': 'black', '#8fbc8f': 'darkseagreen', '#7fffd4': 'aquamarine', '#ffe4e1': 'mistyrose', '#800000': 'maroon', '#6495ed': 'cornflowerblue', '#4169e1': 'royalblue', '#40e0d0': 'turquoise', '#ffffff': 'white', '#00ced1': 'darkturquoise', '#8b0000': 'darkred', '#ee82ee': 'violet', '#adff2f': 'greenyellow', '#b0e0e6': 'powderblue', '#7b68ee': 'mediumslateblue', '#ff00ff': 'magenta', '#4682b4': 'steelblue', '#ff6347': 'tomato', '#00ff7f': 'springgreen', '#ffefd5': 'papayawhip', '#ffd700': 'gold', '#f5fffa': 'mintcream', '#dda0dd': 'plum', '#cd5c5c': 'indianred', '#ffa07a': 'lightsalmon', '#00fa9a': 'mediumspringgreen', '#f8f8ff': 'ghostwhite', '#008000': 'green', '#faebd7': 'antiquewhite', '#f0fff0': 'honeydew', '#c0c0c0': 'silver', '#228b22': 'forestgreen', '#7fff00': 'chartreuse', '#fafad2': 'lightgoldenrodyellow', '#fff8dc': 'cornsilk', '#f4a460': 'sandybrown', '#6b8e23': 'olivedrab', '#9932cc': 'darkorchid', '#fdf5e6': 'oldlace', '#3cb371': 'mediumseagreen', '#d8bfd8': 'thistle', '#808000': 'olive', '#a9a9a9': 'darkgray', '#f5f5dc': 'beige', '#f5deb3': 'wheat', '#ffa500': 'orange', '#00ff00': 'lime', '#90ee90': 'lightgreen', '#a0522d': 'sienna', '#8b4513': 'saddlebrown', '#00ffff': 'aqua', '#4b0082': 'indigo', '#66cdaa': 'mediumaquamarine', '#b22222': 'firebrick', '#d2b48c': 'tan', '#ffebcd': 'blanchedalmond', '#0000ff': 'blue', '#da70d6': 'orchid', '#fffacd': 'lemonchiffon', '#ff7f50': 'coral', '#f5f5f5': 'whitesmoke', '#ffc0cb': 'pink', '#f0e68c': 'khaki', '#ffffe0': 'lightyellow', '#f0ffff': 'azure', '#f0f8ff': 'aliceblue', '#daa520': 'goldenrod', '#c71585': 'mediumvioletred', '#b0c4de': 'lightsteelblue', '#fa8072': 'salmon', '#708090': 'slategray', '#ff1493': 'deeppink', '#6a5acd': 'slateblue', '#2e8b57': 'seagreen', '#e9967a': 'darksalmon', '#778899': 'lightslategrey', '#ba55d3': 'mediumorchid', '#ff4500': 'orangered', '#a52a2a': 'brown', '#696969': 'dimgrey', '#191970': 'midnightblue', '#dc143c': 'crimson', '#bdb76b': 'darkkhaki', '#ffff00': 'yellow', '#d87093': 'palevioletred', '#556b2f': 'darkolivegreen', '#9370d8': 'mediumpurple', '#eee8aa': 'palegoldenrod', '#cd853f': 'peru', '#faf0e6': 'linen', '#bc8f8f': 'rosybrown', '#d2691e': 'chocolate', '#008080': 'teal', '#98fb98': 'palegreen', '#ff69b4': 'hotpink', '#e0ffff': 'lightcyan', '#87cefa': 'lightskyblue', '#ffdead': 'navajowhite', '#483d8b': 'darkslateblue', '#32cd32': 'limegreen', '#e6e6fa': 'lavender', '#800080': 'purple', '#d3d3d3': 'lightgray', '#006400': 'darkgreen', '#0000cd': 'mediumblue', '#00bfff': 'deepskyblue', '#ffe4c4': 'bisque', '#48d1cc': 'mediumturquoise', '#008b8b': 'darkcyan', '#9acd32': 'yellowgreen', '#f08080': 'lightcoral', '#ff0000': 'red', '#deb887': 'burlywood', '#ffb6c1': 'lightpink', '#20b2aa': 'lightseagreen', '#87ceeb': 'skyblue', '#fff0f5': 'lavenderblush', '#8a2be2': 'blueviolet', '#000080': 'navy', '#dcdcdc': 'gainsboro', '#ffdab9': 'peachpuff'}
def hex_to_rgb(value):
    value = value.lstrip('#')
    lv = len(value)
    return tuple(int(value[i:i+lv/3], 16) for i in range(0, lv, lv/3))

def color(rgbValue):
    colors = {};
    for hexValue, colorName in colorlist.items():
        red, green, blue = hex_to_rgb(hexValue);
        red_dif = abs(red - rgbValue[0]);
        green_dif = abs(green - rgbValue[1])
        blue_dif = abs(blue - rgbValue[2])
        colors[red_dif + green_dif + blue_dif] = colorName
    return colors[min(colors.keys())];

while True:

    print "Please input the RGB value.";
    raw_input("--Press ENTER to continue--\n> ");

    red, green, blue = "", "", "";
    red = raw_input("RED\n> ");
    while True:
        try:
            if int(red) not in range(256):
                red = raw_input("--INVALID--\nPlease try again\n> ");
            else:
                break;
        except ValueError:
            red = raw_input("--INVALID--\nPlease try again\n> ");

    green = raw_input("GREEN\n> ");
    while True:
        try:
            if int(green) not in range(256):
                green = raw_input("--INVALID--\nPlease try again\n> ");
            else:
                break;
        except ValueError:
            green = raw_input("--INVALID--\nPlease try again\n> ");

    blue = raw_input("BLUE\n> ");
    while True:
        try:
            if int(blue) not in range(256):
                blue = raw_input("--INVALID--\nPlease try again\n> ");
            else:
                break;
        except ValueError:
            blue = raw_input("--INVALID--\nPlease try again\n> ");

    rgb = (int(red), int(green), int(blue));
    colorName = color(rgb);

    print "The color is", colorName;
    print
    print
    print

Sin interfaz de usuario

Oliver Ni
fuente
3

Javascript

https://jsfiddle.net/SuperJedi224/goxyhm7a/

Algunos resultados de la muestra [al 31 de julio] (los colores enumerados son, en orden, el que determina como el más cercano y el que determina como el segundo más cercano; excepto donde solo se proporciona uno, en cuyo caso se determinó que era un coincidencia exacta):

ingrese la descripción de la imagen aquí

Azul marino brillante / azul acero

una

Bronce / Tostado Amarillo Naranja

una

Topacio / Pera

una

Verde limo / verde oliva

una

Viridian / Emerald

SuperJedi224
fuente
0

VB.net

Function ColorName(r AS Integer, g As Integer, b As Integer)As String
  Dim nc = Color.FromArgb(255, r, g, b)
  For Each ob In [Enum].GetValues(GetType(System.Drawing.KnownColor))
    Dim c = Color.FromKnownColor(CType(ob, System.Drawing.KnownColor))
    If (c.R = nc.R) AndAlso (c.B = nc.B) AndAlso (c.G = nc.G) Then Return c.Name
  Next
  Return nc.Name
End Function
Adam Speight
fuente
¿Me estoy perdiendo de algo? Esto parece cubrir solo 174 de 16 M de colores RGB posibles.
Jon of All Trades
@JonofAllTrades Depende de la definición de las preguntas, la salida del nombre de los colores. Por ejemplo, si el color no tiene nombre, genera el color HTML, por ejemplo, & FFFFFFFF. ¿La pregunta dice dar salida al nombre del color con nombre más "conocido" No.
Adam Speight
Como siempre, te gusta interpretar las cosas de manera diferente a los demás.
justhalf