十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

gd语言计算转换颜色:HEX 到 RGB、RGB到HSL ,HSL到RGB

gd语言计算转换颜色:HEX 到 RGB、RGB到HSL ,HSL到RGB func HEXtoRGB(): #HEX转换RGB# setting_color_hex_list setting_color_hex.split() #分割HEX色号 for i in range(setting_color_hex_list.size()): if setting_color_hex_list[i] a: transform_num 10 elif setting_color_hex_list[i] b: transform_num 11 elif setting_color_hex_list[i] c: transform_num 12 elif setting_color_hex_list[i] d: transform_num 13 elif setting_color_hex_list[i] e: transform_num 14 elif setting_color_hex_list[i] f: transform_num 15 else: transform_num int(setting_color_hex_list[i]) transform_num_list.append(transform_num) num1 transform_num_list[0]*16 transform_num_list[1] num_list.append(num1) num1 transform_num_list[2]*16 transform_num_list[3] num_list.append(num1) num1 transform_num_list[4]*16 transform_num_list[5] num_list.append(num1) var Max num_list.max() var Min num_list.min() var R num_list[0] var G num_list[1] var B num_list[2]var Max num_list.max() #RGB转换HSL var Min num_list.min() var R num_list[0] var G num_list[1] var B num_list[2] var Delta float(Max - Min) var L2 float(abs((Max/255.0 Min/255.0)/2)) var L (Max/255.0 Min/255.0)/2*100 if Max Min or Max 0: S 0 H 0 else: if L2 0.5: S Delta/255/L2*2*100 elif L2 0.5: S Delta/255/(2 - L2*2)*100 if Max R and G B: H float(G - B)/Delta*60 elif Max R and G B: H float(G - B)/Delta*60 360 elif Max G: H float(B - R)/Delta*60 120 elif Max B: H float(R - G)/Delta*60 240 H round(H) #HSL颜色 S round(S) L round(L)S S/100.0 #HSL转换RGB L L/100.0 var C (1 -abs(2*L-1))*S # 0 H 360 var X C * (1 - abs(fmod(H/60.0,2.0)-1)) var m L - C/2 if H 0 and H 60: R_1 C G_1 X B_1 0 elif H 60 and H 120: R_1 X G_1 C B_1 0 elif H 120 and H 180: R_1 0 G_1 C B_1 X elif H 180 and H 240: R_1 0 G_1 X B_1 C elif H 240 and H 300: R_1 X G_1 0 B_1 C elif H 300 and H 360: R_1 C G_1 0 B_1 X R_finish round((R_1 m)*255) G_finish round((G_1 m)*255) B_finish round((B_1 m)*255)
返回列表