Преобразование имени подцвета в имя цвета паранта - PullRequest
0 голосов
/ 04 июня 2018

Я сослался на вопрос https://stackoverflow.com/a/9694246/98276, чтобы получить имя цвета по значениям RGB.Но существует слишком много названий цветов.Так что я хочу сделать, если я получу название цвета «бордовый», поменяю на «красный».также, если вы получите «синий кадет», измените на «синий»

actual_name, closest_name = get_colour_name(requested_colour)
if actual_name == None:
    actual_name = get_parantColor(closest_name) #if closest_name was maroon, return red.

1 Ответ

0 голосов
/ 04 июня 2018

На этот вопрос можно ответить разными способами.Это действительно зависит от двух вещей:

  1. каков ваш базовый пул цветов и
  2. что мера сходства вы хотитеиспользовать (т. е. как должна выглядеть функция перевода (сопоставления) из произвольного цвета в базовый) - то же, что и webcolors из указанного вопроса, или отличается?

Например,одним очень простым подходом будет 'red', 'green', 'blue', поскольку ваш пул цветов и функция перевода могут проверять красные, зеленые и синие компоненты цвета и возвращать, какой бы ни был максимальный.Например, для цвета RGB(128, 0, 0) (темно-бордовый) вы должны вернуть 'red', поскольку красный компонент является наиболее заметным.(Тем не менее, что вы будете делать, если два или все три компонента присутствуют одинаково? Это то, что вам также необходимо определить.)

Другое решение, если количество цветов, с которыми вы можете столкнуться, ограничено,чтобы создать словарь, который отображает ваш входной цвет на один из ваших базовых цветов: {'maroon': 'red', 'cadet blue': 'blue', ...} и используйте его.

Решение действительно зависит от того, как вы определяете проблему.Две точки в начале могут помочь с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...