webForumDet fria alternativet

Jämföra två hex-värden

ASP

7 svar · 202 visningar · startad av dap

Medlem sedan dec. 1999151 inlägg
Frågan#1

Howdy

Kan man jämföra två hexadecimala värden med varandra, utan att konvertera dem till decimala värden först?

::dap

Medlem sedan dec. 1999151 inlägg
#2

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å.

::dap

Medlem sedan dec. 19996 721 inlägg
#3

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.

[Redigerat av emission den 24 jul 2000]

Medlem sedan dec. 1999151 inlägg
#4

Funka stabilt!

Det går bra att jämföra färgvärdet som det är, utan att dela upp det i R, G och B.

Tackar.

::dap

Medlem sedan dec. 19996 721 inlägg
#5

Hur sjutton går det till?

Medlem sedan dec. 1999151 inlägg
#6

Hela denna tråd går ut på följande:

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

::dap

Medlem sedan dec. 19996 721 inlägg
#7

Men det kan ju aldrig funka ordentligt.

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.

Medlem sedan dec. 1999151 inlägg
#8

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
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)