- From Hexadecimal to RGB
- From RGB to Hexadecimal
- Check for a valid hexadecimal value
From Hexadecimal to RGB:
copyraw
HEX2RGB(HEXString,Delimiter="") { If Delimiter= Delimiter=, StringMid,R,HexString,1,2 StringMid,G,HexString,3,2 StringMid,B,HexString,5,2 R = % "0x"R G = % "0x"G B = % "0x"B R+=0 G+=0 B+=0 RGBString = % R Delimiter G Delimiter B Return RGBString }
- HEX2RGB(HEXString,Delimiter="")
- {
- If Delimiter=
- Delimiter=,
- StringMid,R,HexString,1,2
- StringMid,G,HexString,3,2
- StringMid,B,HexString,5,2
- R = % "0x"R
- G = % "0x"G
- B = % "0x"B
- R+=0
- G+=0
- B+=0
- RGBString = % R Delimiter G Delimiter B
- Return RGBString
- }
From RGB to Hexadecimal:
copyraw
RGB2HEX(RGBString,Delimiter="") { If Delimiter= Delimiter=, StringSplit,_RGB,RGBString,%Delimiter% SetFormat, Integer, Hex _RGB1+=0 _RGB2+=0 _RGB3+=0 If StrLen(_RGB1) = 3 _RGB1= 0%_RGB1% If StrLen(_RGB2) = 3 _RGB2= 0%_RGB2% If StrLen(_RGB3) = 3 _RGB3= 0%_RGB3% SetFormat, Integer, D HEXString = % _RGB1 _RGB2 _RGB3 StringReplace, HEXString, HEXString,0x,,All StringUpper, HEXString, HEXString Return, HEXString }
- RGB2HEX(RGBString,Delimiter="")
- {
- If Delimiter=
- Delimiter=,
- StringSplit,_RGB,RGBString,%Delimiter%
- SetFormat, Integer, Hex
- _RGB1+=0
- _RGB2+=0
- _RGB3+=0
- If StrLen(_RGB1) = 3
- _RGB1= 0%_RGB1%
- If StrLen(_RGB2) = 3
- _RGB2= 0%_RGB2%
- If StrLen(_RGB3) = 3
- _RGB3= 0%_RGB3%
- SetFormat, Integer, D
- HEXString = % _RGB1 _RGB2 _RGB3
- StringReplace, HEXString, HEXString,0x,,All
- StringUpper, HEXString, HEXString
- Return, HEXString
- }
Just in case, check a valid hexadecimal value:
copyraw
CheckHexC(HEXString) { StringUpper, HEXString, HEXString RGB:=HEX2RGB(HEXString) CHK:=RGB2HEX(RGB) StringUpper, CHK, CHK If CHK=%HEXString% Return 1 else Return 0 }
- CheckHexC(HEXString)
- {
- StringUpper, HEXString, HEXString
- RGB:=HEX2RGB(HEXString)
- CHK:=RGB2HEX(RGB)
- StringUpper, CHK, CHK
- If CHK=%HEXString%
- Return 1
- else
- Return 0
- }
Category: AutoHotkey :: Article: 387
Add comment