注意一点:十六进制转换成十进制的时候,需要前面带0x标记。
;----------互补色和邻近色的函数
GetCompColor(thecolor) ;取得十六进制颜色的互补色
{
if substr(thecolor, 1,2)="0x"
thecolor:=substr(thecolor,3,8)
RcolorDec:=255-toBase("0x" substr(thecolor,1,2),10) ;必须要带前缀
GcolorDec:=255-toBase("0x" substr(thecolor,3,2),10)
BcolorDec:=255-toBase("0x" substr(thecolor,4,2),10)
RcolorHex:=toBase(RcolorDec,16)
GcolorHex:=toBase(GcolorDec,16)
BcolorHex:=toBase(BcolorDec,16)
CompColor:=RcolorHex . GcolorHex . BcolorHex
Return %CompColor%
}
GetShadowColor(theColor,Lightlevel) ;取得十六制颜色的邻近色,Lightlevel为正数则变淡,为负数时则变浅
{
if substr(thecolor, 1,2)="0x"
thecolor:=substr(thecolor,3,8)
RcolorDec:=toBase("0x" substr(thecolor,1,2),10)+Lightlevel ;必须要带前缀
GcolorDec:=toBase("0x" substr(thecolor,3,2),10)+Lightlevel
BcolorDec:=toBase("0x" substr(thecolor,5,2),10)+Lightlevel
RcolorHex:=toBase(RcolorDec,16)
GcolorHex:=toBase(GcolorDec,16)
BcolorHex:=toBase(BcolorDec,16)
CompColor:=RcolorHex . GcolorHex . BcolorHex
Return %CompColor%
}
;进制转换,如;十六进制转换为十进制则为ToBase(0xD2DFC,10) ,十进制转换成十六进制则为ToBase(NumDec,16)
ToBase(n,b){
return (n < b ? "" : ToBase(n//b,b)) . ((d:=Mod(n,b)) < 10 ? d : Chr(d+55))
}