|
前不久在论坛找的,TC4.0直接可用
- 空间 偏色计算器
- function 开始功能()//开始按钮_点击操作
- array_color
- var len1,len2
- all_color = edit.gettext("edit0")
-
- str.split(all_color,"|",array_color)
- arraysp.size(array_color,len1)
- if(len1==0)
- help.messagebox("请输入至少2组颜色值","RGB基色丨偏色计算工具")
- endif
-
- color_Rx = array[len1]
- color_Gx = array[len1]
- color_Bx = array[len1]
- for(i=0;i<len1;i++)//基色数组
- color_Rx[i] = str.strsub(array_color[i],0,2)
- color_Gx[i] = str.strsub(array_color[i],2,4)
- color_Bx[i] = str.strsub(array_color[i],4,6)
- endfor
-
- color_Rx_10 = array[len1]
- color_Gx_10 = array[len1]
- color_Bx_10 = array[len1]
- for(i=0;i<len1;i++) //基色转10进制
- color_Rx_10[i] = color.hextoint(color_Rx[i])
- color_Gx_10[i] = color.hextoint(color_Gx[i])
- color_Bx_10[i] = color.hextoint(color_Bx[i])
- endfor
-
- color_R0 = array[len1]
- color_G0 = array[len1]
- color_B0 = array[len1]
- for(i=0;i<len1;i++)//偏色数组
- color_R0[i] = str.strsub(array_color[i],7,9)
- color_G0[i] = str.strsub(array_color[i],9,11)
- color_B0[i] = str.strsub(array_color[i],11,13)
- endfor
-
- color_R0_10 = array[len1]
- color_G0_10 = array[len1]
- color_B0_10 = array[len1]
- for(i=0;i<len1;i++)//偏色转10进制
- color_R0_10[i] = color.hextoint(color_R0[i])
- color_G0_10[i] = color.hextoint(color_G0[i])
- color_B0_10[i] = color.hextoint(color_B0[i])
- endfor
-
- color_Rmax = array[len1]
- color_Gmax = array[len1]
- color_Bmax = array[len1]
- for(i=0;i<len1;i++)//基色+偏色
- color_Rmax[i] = color_Rx_10[i]+color_R0_10[i]
- color_Gmax[i] = color_Gx_10[i]+color_G0_10[i]
- color_Bmax[i] = color_Bx_10[i]+color_B0_10[i]
- endfor
-
- color_Rmin = array[len1]
- color_Gmin = array[len1]
- color_Bmin = array[len1]
- for(i=0;i<len1;i++)//基色-偏色
- color_Rmin[i] = color_Rx_10[i]-color_R0_10[i]
- color_Gmin[i] = color_Gx_10[i]-color_G0_10[i]
- color_Bmin[i] = color_Bx_10[i]-color_B0_10[i]
- endfor
-
- //链接MAX MIN
- color_R_10 = array[len2]
- color_G_10 = array[len2]
- color_B_10 = array[len2]
- color_R_10 = arraysp.cat(color_Rmin,color_Rmax)
- color_G_10 = arraysp.cat(color_Gmin,color_Gmax)
- color_B_10 = arraysp.cat(color_Bmin,color_Bmax)
- arraysp.size(color_R_10,len2)
-
- //排序
- arraysp.sort(color_R_10,2)
- arraysp.sort(color_G_10,2)
- arraysp.sort(color_B_10,2)
-
- //max-min
- d_R = (color_R_10[len2-1]-color_R_10[0])/2
- d_G = (color_G_10[len2-1]-color_G_10[0])/2
- d_B = (color_B_10[len2-1]-color_B_10[0])/2
-
- //均值
- R = (color_R_10[len2-1]+color_R_10[0])/2
- G = (color_G_10[len2-1]+color_G_10[0])/2
- B = (color_B_10[len2-1]+color_B_10[0])/2
-
- //偏色转16进制
- real_d_R = type.int(d_R)+2
- real_d_R_16 = str.format("%x",real_d_R)
- real_d_G = type.int(d_G)+2
- real_d_G_16 = str.format("%x",real_d_G)
- real_d_B = type.int(d_B)+2
- real_d_B_16 = str.format("%x",real_d_B)
-
- //偏色长度修正
- ret = str.strleng(real_d_R_16)
- if(ret == 1)
- real_d_R_16 = str.strcat(0,real_d_R_16)
- endif
- ret = str.strleng(real_d_G_16)
- if(ret == 1)
- real_d_G_16 = str.strcat(0,real_d_G_16)
- endif
- ret = str.strleng(real_d_B_16)
- if(ret == 1)
- real_d_B_16 = str.strcat(0,real_d_B_16)
- endif
-
- //基色转16进制
- real_R = type.int(R)
- real_R_16 = str.format("%x",real_R)
- real_G = type.int(G)
- real_G_16 = str.format("%x",real_G)
- real_B = type.int(B)
- real_B_16 = str.format("%x",real_B)
-
- //基色长度修正
- ret = str.strleng(real_d_R_16)
- if(ret == 1)
- real_d_R_16 = str.strcat(0,real_d_R_16)
- endif
- ret = str.strleng(real_d_G_16)
- if(ret == 1)
- real_d_G_16 = str.strcat(0,real_d_G_16)
- endif
- ret = str.strleng(real_d_B_16)
- if(ret == 1)
- real_d_B_16 = str.strcat(0,real_d_B_16)
- endif
-
- edit.settext("edit1",real_R_16&real_G_16&real_B_16&"-"&real_d_R_16&real_d_G_16&real_d_B_16)
- endfunction
- 功能 按钮0_点击()
- //这里添加你要执行的代码
- 线程.开启("偏色计算器.开始功能","")
- 功能结束
- endnamespace
复制代码 |

|