Создать N последовательных равноотстоящих лабораторных цветов от темного до светлого

Я пытаюсь создать эквидистантные / последовательные цвета, используя цветовое пространство LAB. Есть похожие вопросы, спрашивающие, как это сделать, но не специфичные для LAB.

По сути, идеальная функция позволила бы вам придать ему один лабораторный цвет и дать вам светлые и темные оттенки этого цвета, пока он не достигнет максимальной яркости / темноты. В идеале я мог бы дать ему второй параметр того, сколько оттенков создать.

Я могу создавать светлые и темные цвета, используя RGB. Однако я не уверен, как это сделать, используя цветовое пространство LAB. Я использую Python.

Вот функция, которую я имею до сих пор:

def color_variant(self, target_hex, offset=50):
    if len(target_hex) != 7:
        return None
    hex_color = [target_hex[x:x+2] for x in [1, 3, 5]]
    new_rgb = [int(hex_value, 16) + offset for hex_value in hex_color]
    new_rgb = [min([255, max([0, i])]) for i in new_rgb]

    return '#%02x%02x%02x' % (new_rgb[0], new_rgb[1], new_rgb[2])

Обновление Добавление изображения, чтобы продемонстрировать, как будут выглядеть градиенты. На рисунке показаны два теста: один создан с использованием ползунка HSB, а другой - с помощью ползунка L of LAB.

0 ответов

Другие вопросы по тегам