Jag har tänkt att göra en grov uppskattning om ett HTML-färgvärde (hex) är ljust eller mörkt. Genom att jämföra med 808080 (hex). Jag är väl medveten om att färgen är uppdelad i RGB. Men jag inbillar mig att det går att ta hex-värdet som det är ändå.
Visst kan man jämföra hex-värden, precis som vanliga decimala värden. I VBScript anges hex-värden med &H, dvs. hexvärdet F2 skrivs &HF2. SJälvklart måste du dela upp HTML-värdet innan du gör några jämförelser.
Jag har lagt alla font-taggar i konstanter i en egen fil. Till denna fil har jag gjort ett admin-gränssnitt. Jag ville få en preview på varje font-tagg bredvid textboxen. Eftersom det finns fonter i både svart, vitt och grått så syntes en del fonter dåligt (mot den windowsgrå bakgrunden). Lösningen blev att lägga en bakgrundsfärg i de TD där fonten preview:ades. Genom att jämföra färgen i font-taggen med C0C0C0 och sedan välja BGCOLOR därefter så får man en grov uppskattning på om färgen är mörk eller ljus. Ingen exakt vetenskap, men det funkar. Jag valde att visa svart bakgrundsfärg om fonten var ljus annars visas ingen (dvs dokumentets färg=grå).
HexColor kan tex innehålla &HE1E1E1
If HexColor <= &HC0C0C0 Then
ViewBg = BgColorWindows
Else
ViewBg = "#000000"
End If
E1E1E1 är ju inte ett hexvärde, utan tre. 00FFFF är ju betydligt ljusare än FF0000. Det är inte särskilt rättvisande att använda värdet som om det vore ett värde.
Som sagt ingen exakt vetenskap. Det fungerar hittills. Jag har inte testat färger i hela spektrat än. Kanske visar det sig att gränsvärden hamnar på fel bakgrund.
::dap
257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25