def color_from_hsl(hue, sat, lig, alpha): chroma = (1 - abs(2 * lig - 1)) * sat h1 = hue * 6 x = chroma * (1 - abs(math.fmod(h1, 2) - 1)) col = QColor() if 0 <= h1 < 1: col = QColor.fromRgbF(chroma, x, 0) elif h1 < 2: col = QColor.fromRgbF(x, chroma, 0) elif h1 < 3: col = QColor.fromRgbF(0, chroma, x) elif h1 < 4: col = QColor.fromRgbF(0, x, chroma) elif h1 < 5: col = QColor.fromRgbF(x, 0, chroma) elif h1 < 6: col = QColor.fromRgbF(chroma, 0, x) m = lig - chroma / 2 return QColor.fromRgbF( clamp(col.redF() + m, 0.0, 1.0), clamp(col.greenF() + m, 0.0, 1.0), clamp(col.blueF() + m, 0.0, 1.0), alpha )
def color_from_lch(hue, chroma, luma, alpha=1): h1 = hue * 6 x = chroma * (1 - abs(math.fmod(h1, 2) - 1)) col = QColor() if 0 <= h1 < 1: col = QColor.fromRgbF(chroma, x, 0) elif h1 < 2: col = QColor.fromRgbF(x, chroma, 0) elif h1 < 3: col = QColor.fromRgbF(0, chroma, x) elif h1 < 4: col = QColor.fromRgbF(0, x, chroma) elif h1 < 5: col = QColor.fromRgbF(x, 0, chroma) elif h1 < 6: col = QColor.fromRgbF(chroma, 0, x) m = luma - color_luma_float(col) return QColor.fromRgbF( clamp(col.redF() + m, 0.0, 1.0), clamp(col.greenF() + m, 0.0, 1.0), clamp(col.blueF() + m, 0.0, 1.0), alpha )