import numpy as np | |
import colorsys | |
from .contrast_detector import ContrastDetector | |
class HueContrastDetector(ContrastDetector): | |
"""Hue contrast detector""" | |
def calculate_contrast(self, color1, color2): | |
"""Calculate hue difference between two colors""" | |
hsv1 = colorsys.rgb_to_hsv(color1[0]/255.0, color1[1]/255.0, color1[2]/255.0) | |
hsv2 = colorsys.rgb_to_hsv(color2[0]/255.0, color2[1]/255.0, color2[2]/255.0) | |
hue_diff = abs(hsv1[0] - hsv2[0]) | |
# Adjust for circular nature of hue | |
if hue_diff > 0.5: | |
hue_diff = 1 - hue_diff | |
# Scale to 0-10 range to match WCAG scale | |
return hue_diff * 20 | |