#deffunc cc2rgb ref array RGB,str cc
カラーコードをRGB配列に変換する。
#define ctype apply3 array RGB
配列を3つの引数に展開する。
#define ccolor str cc
カラーコードを直接colorに適用する。
同じ色でcolorを何回も適用する場合はRGB配列をキャッシュとして保持しておいた方がオーバーヘッドも少なくていいと思う。
#deffunc cc2rgb ref array RGB,str cc
カラーコードをRGB配列に変換する。
#define ctype apply3 array RGB
配列を3つの引数に展開する。
#define ccolor str cc
カラーコードを直接colorに適用する。
同じ色でcolorを何回も適用する場合はRGB配列をキャッシュとして保持しておいた方がオーバーヘッドも少なくていいと思う。
#module @cc2rgb#deffunc local cc2rgb array RGB,str _cccc=_ccccLen=strlen(cc)cci=int("$"+strmid(cc,1,ccLen-1))if ccLen=7 {R=cci>>16&$FFG=cci>>8 &$FFB=cci &$FF}else:if ccLen=4 {R=cci>>8&$F: R|=R<<4G=cci>>4&$F: G|=G<<4B=cci &$F: B|=B<<4}else: return 1RGB=R,G,Breturn 0#define global cc2rgb(%1,%2) dim %1,3: cc2rgb@@cc2rgb %1,%2#define global ctype apply3(%1) %1(0),%1(1),%1(2)#define global ccolor(%1) %tccolor \cc2rgb %i,%1 :\color apply3(%o)#globalcc2rgb skyBlue,"#3399FF"cc2rgb pink,"#F7F"color apply3(skyBlue)boxf 0,0,200,200color apply3(pink)mes strf("skyBlue=RGB(%d,%d,%d)",apply3(skyBlue))mes strf("pink=RGB(%d,%d,%d)",apply3(pink))ccolor "#33FF33"mes "GReeeeeN"