TC官方合作论坛
标题:
跪求色偏计算工具原理
[打印本页]
作者:
wenguiyong123
时间:
2015-4-6 21:42
标题:
跪求色偏计算工具原理
想自己做一个 色偏计算工具但是不知从何入手求大神帮帮 越详细越好
作者:
jianxitt
时间:
2015-4-6 21:57
前不久在论坛找的,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
复制代码
作者:
秋来潮汐
时间:
2015-4-7 13:42
[attach]19654[/attach]
EZ专版偏色计算器
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1