1. RGB颜色模式

RGB颜色模式基于红色(Red)、绿色(Green)和蓝色(Blue)三种光的组合,通常用于显示器和电子屏幕。通过调节这三种颜色的强度,可以表示多种颜色。每种颜色的强度一般用一个范围在 0 到 255 之间的数字来表示,0表示没有该颜色的光,255表示该颜色的光的最强强度。

  • R (Red):红色通道的强度
  • G (Green):绿色通道的强度
  • B (Blue):蓝色通道的强度

例如,RGB(255, 0, 0)表示纯红色,因为红色通道是最大值(255),而绿色和蓝色通道没有光(0)。

2. 16进制颜色代码

16进制颜色代码通常由“#”符号开始,后面跟着6个字符。每两个字符代表一个颜色通道(红色、绿色、蓝色)的16进制数值(从00到FF),对应的是RGB的强度值。

  • #RRGGBB 形式,R、G、B每个部分是2个十六进制字符
    • RR 表示红色通道的强度(从00到FF)
    • GG 表示绿色通道的强度(从00到FF)
    • BB 表示蓝色通道的强度(从00到FF)

例如,#FF0000 表示纯红色:

  • 红色部分 FF(即255)
  • 绿色部分 00(即0)
  • 蓝色部分 00(即0)

 

MsgBox % HexToRGB("0xf0ffff")

MsgBox % HexToRGB("0xFFFF00", "Parse")

; Input: 6 characters HEX-color. Mode can be RGB, Message (R: x, G: y, B: z) or parse (R,G,B)
HexToRGB(Color, Mode="") {
  ; If df, d is *16 and f is *1. Thus, Rx = R*16 while Rn = R*1
  Color:=regexreplace(Color,"^(0x|0X|#)")
  Rx := SubStr(Color, 1,1), Rn := SubStr(Color, 2,1)
  Gx := SubStr(Color, 3,1), Gn := SubStr(Color, 4,1)
  Bx := SubStr(Color, 5,1), Bn := SubStr(Color, 6,1)
  AllVars := "Rx|Rn|Gx|Gn|Bx|Bn"
  Loop, Parse, Allvars, | ; Add the Hex values (A - F)
  {
    StringReplace, %A_LoopField%, %A_LoopField%, a, 10
    StringReplace, %A_LoopField%, %A_LoopField%, b, 11
    StringReplace, %A_LoopField%, %A_LoopField%, c, 12
    StringReplace, %A_LoopField%, %A_LoopField%, d, 13
    StringReplace, %A_LoopField%, %A_LoopField%, e, 14
    StringReplace, %A_LoopField%, %A_LoopField%, f, 15
  }
  R := Rx*16+Rn, G := Gx*16+Gn, B := Bx*16+Bn
  If (Mode = "Message") ; Returns "R: 255 G: 255 B: 255"
    Out := "R:" . R . " G:" . G . " B:" . B
  else if (Mode = "Parse") ; Returns "255,255,255"
    Out := R . "," . G . "," . B
  else
    Out := R . G . B ; Returns 255255255
  return Out
}

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。