Kontrast relativního jasu
Vypočítejte kontrast relativního jasu dvou barev RGB se třemi osmibitovými kanály.
def contrast_ratio(left, right):
def luminance(rgb):
if type(rgb) not in (list, tuple) or len(rgb) != 3:
raise ValueError("rgb.container")
rgb = tuple(rgb)
if len(rgb) != 3 or any(type(c) is not int or not 0 <= c <= 255 for c in rgb):
raise ValueError("rgb.channel")
channels = [c / 255 for c in rgb]
linear = [c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055)**2.4
for c in channels]
return sum(c * w for c, w in zip(linear, (0.2126, 0.7152, 0.0722)))
a, b = sorted((luminance(left), luminance(right)))
return (b + 0.05) / (a + 0.05)Projekt
Ověřte černou proti bílé, stejné barvy a obrácené argumenty a odmítněte neceločíselné kanály či hodnoty mimo rozsah bez tvrzení o úplném posouzení přístupnosti.
Před použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
def contrast_ratio(left, right):
def luminance(rgb):
if type(rgb) not in (list, tuple) or len(rgb) != 3:
raise ValueError("rgb.container")
rgb = tuple(rgb)
if len(rgb) != 3 or any(type(c) is not int or not 0 <= c <= 255 for c in rgb):
raise ValueError("rgb.channel")
channels = [c / 255 for c in rgb]
linear = [c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055)**2.4
for c in channels]
return sum(c * w for c, w in zip(linear, (0.2126, 0.7152, 0.0722)))
a, b = sorted((luminance(left), luminance(right)))
return (b + 0.05) / (a + 0.05)Propojte výpočet barvy s rozhraním, které popisuje
LumaGauge je programovací software s AI pro Windows pro kontrolu změn rozhraní závislých na výpočtech barev. Otevřete projekt a popište prvek, pozadí a stav k prozkoumání. Připojený asistent může pomoci prověřit příslušný kód a probrat úpravu, zatímco vykreslené rozhraní a jeho skutečné vstupy zůstávají středem úlohy.
Příklad luminance.py nabízí cílené zadání k výpočtu kontrastu. Ptejte se, odkud pocházejí hodnoty barev a zda odpovídají nakonec zobrazeným barvám. Aplikace může hodnoty před vykreslením transformovat, takže samotná pomocná funkce vizuální otázku nevyřeší. Příklad použijte jako kontext projektu a sledujte výsledek až ke komponentě, která jej používá, a chování, které ovlivňuje.
Model AI bez omezení lze zvolit přes podporovaný koncový bod kompatibilní s OpenAI nebo koncový bod Anthropic, který jej nabízí. Nastavená služba dodává možnosti modelu, podporu nástrojů i případná omezení. Po kontrole navržené změny spusťte numerické kontroly a prověřte příslušné stavy obrazovky. Zohledněte konečné popředí a pozadí a nespoléhejte jen na návrhové tokeny. Tento postup pomáhá odlišit chybu výpočtu od nesprávného vstupu nebo prezentačního problému vyžadujícího jinou opravu.
Kontrola softwarového chování souvisejícího s barvami
Certifikuje poměr z pomocné funkce rozhraní?
Ne. Hodnota popisuje dodané barvy za předpokladů výpočtu. Prověřte skutečný vykreslený stav a kritéria platná pro prvek. Jediný číselný výsledek neprokazuje přístupnost celé obrazovky ani aplikace.
Co když neprůhlednost CSS mění viditelnou barvu?
Než zdrojové tokeny považujete za konečné vstupy, dohledávejte výsledné popředí a pozadí. Prověřte vykreslený prvek i související vrstvení. Ptejte se, zda výpočet dostává barvy viditelné uživateli, nebo dřívější návrhovou hodnotu.
Jaké vstupy jsou užitečné pro testování výpočtu?
Použijte známé referenční dvojice, stejné barvy a hodnoty na přijímaných hranicích kanálů. Zahrňte neplatné kontejnery a hodnoty kanálů k ověření odmítnutí. Porovnávejte s nezávislou očekávanou hodnotou, místo pouhého zapsání výstupu nové funkce.
Mám upravit pomocnou funkci, nebo paletu motivu?
Nejprve určete, zda nesoulad pochází ze vzorce, vstupů nebo zamýšleného vizuálního návrhu. Každá příčina vyžaduje jinou změnu. Při změně sdílené hodnoty palety prověřte sousední komponenty, protože se mohou změnit i jejich kontrastní vztahy.
LumaGauge · Aktualizováno 2026-10-25