TC官方合作论坛

 找回密码
 立即注册
查看: 348|回复: 2
打印 上一主题 下一主题

[已解决] 跪求色偏计算工具原理

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-6 21:42:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
想自己做一个   色偏计算工具但是不知从何入手求大神帮帮  越详细越好
回复

使用道具 举报

沙发
发表于 2015-4-6 21:57:15 | 只看该作者
前不久在论坛找的,TC4.0直接可用
  1. 空间 偏色计算器


  2. function 开始功能()//开始按钮_点击操作
  3.     array_color
  4.     var len1,len2
  5.     all_color = edit.gettext("edit0")
  6.    
  7.     str.split(all_color,"|",array_color)
  8.     arraysp.size(array_color,len1)
  9.     if(len1==0)
  10.         help.messagebox("请输入至少2组颜色值","RGB基色丨偏色计算工具")
  11.     endif
  12.    
  13.     color_Rx = array[len1]
  14.     color_Gx = array[len1]
  15.     color_Bx = array[len1]
  16.     for(i=0;i<len1;i++)//基色数组
  17.         color_Rx[i] = str.strsub(array_color[i],0,2)
  18.         color_Gx[i] = str.strsub(array_color[i],2,4)
  19.         color_Bx[i] = str.strsub(array_color[i],4,6)
  20.     endfor
  21.    
  22.     color_Rx_10 = array[len1]
  23.     color_Gx_10 = array[len1]
  24.     color_Bx_10 = array[len1]
  25.     for(i=0;i<len1;i++)        //基色转10进制
  26.         color_Rx_10[i] = color.hextoint(color_Rx[i])
  27.         color_Gx_10[i] = color.hextoint(color_Gx[i])
  28.         color_Bx_10[i] = color.hextoint(color_Bx[i])   
  29.     endfor
  30.    
  31.     color_R0 = array[len1]
  32.     color_G0 = array[len1]
  33.     color_B0 = array[len1]
  34.     for(i=0;i<len1;i++)//偏色数组
  35.         color_R0[i] = str.strsub(array_color[i],7,9)
  36.         color_G0[i] = str.strsub(array_color[i],9,11)
  37.         color_B0[i] = str.strsub(array_color[i],11,13)
  38.     endfor
  39.    
  40.     color_R0_10 = array[len1]
  41.     color_G0_10 = array[len1]
  42.     color_B0_10 = array[len1]
  43.     for(i=0;i<len1;i++)//偏色转10进制
  44.         color_R0_10[i] = color.hextoint(color_R0[i])
  45.         color_G0_10[i] = color.hextoint(color_G0[i])
  46.         color_B0_10[i] = color.hextoint(color_B0[i])   
  47.     endfor
  48.    
  49.     color_Rmax = array[len1]
  50.     color_Gmax = array[len1]
  51.     color_Bmax = array[len1]
  52.     for(i=0;i<len1;i++)//基色+偏色
  53.         color_Rmax[i] = color_Rx_10[i]+color_R0_10[i]
  54.         color_Gmax[i] = color_Gx_10[i]+color_G0_10[i]
  55.         color_Bmax[i] = color_Bx_10[i]+color_B0_10[i]
  56.     endfor
  57.    
  58.     color_Rmin = array[len1]
  59.     color_Gmin = array[len1]
  60.     color_Bmin = array[len1]
  61.     for(i=0;i<len1;i++)//基色-偏色
  62.         color_Rmin[i] = color_Rx_10[i]-color_R0_10[i]
  63.         color_Gmin[i] = color_Gx_10[i]-color_G0_10[i]
  64.         color_Bmin[i] = color_Bx_10[i]-color_B0_10[i]
  65.     endfor
  66.    
  67.     //链接MAX MIN
  68.     color_R_10 = array[len2]
  69.     color_G_10 = array[len2]
  70.     color_B_10 = array[len2]
  71.     color_R_10 = arraysp.cat(color_Rmin,color_Rmax)   
  72.     color_G_10 = arraysp.cat(color_Gmin,color_Gmax)  
  73.     color_B_10 = arraysp.cat(color_Bmin,color_Bmax)  
  74.     arraysp.size(color_R_10,len2)
  75.    
  76.     //排序
  77.     arraysp.sort(color_R_10,2)
  78.     arraysp.sort(color_G_10,2)
  79.     arraysp.sort(color_B_10,2)
  80.    
  81.     //max-min
  82.     d_R = (color_R_10[len2-1]-color_R_10[0])/2
  83.     d_G = (color_G_10[len2-1]-color_G_10[0])/2
  84.     d_B = (color_B_10[len2-1]-color_B_10[0])/2
  85.    
  86.     //均值
  87.     R = (color_R_10[len2-1]+color_R_10[0])/2
  88.     G = (color_G_10[len2-1]+color_G_10[0])/2
  89.     B = (color_B_10[len2-1]+color_B_10[0])/2
  90.    
  91.     //偏色转16进制
  92.     real_d_R = type.int(d_R)+2
  93.     real_d_R_16 = str.format("%x",real_d_R)
  94.     real_d_G = type.int(d_G)+2
  95.     real_d_G_16 = str.format("%x",real_d_G)
  96.     real_d_B = type.int(d_B)+2
  97.     real_d_B_16 = str.format("%x",real_d_B)
  98.    
  99.     //偏色长度修正
  100.     ret = str.strleng(real_d_R_16)
  101.     if(ret == 1)
  102.         real_d_R_16 = str.strcat(0,real_d_R_16)
  103.     endif
  104.     ret = str.strleng(real_d_G_16)
  105.     if(ret == 1)
  106.         real_d_G_16 = str.strcat(0,real_d_G_16)
  107.     endif
  108.     ret = str.strleng(real_d_B_16)
  109.     if(ret == 1)
  110.         real_d_B_16 = str.strcat(0,real_d_B_16)
  111.     endif
  112.    
  113.     //基色转16进制
  114.     real_R = type.int(R)
  115.     real_R_16 = str.format("%x",real_R)
  116.     real_G = type.int(G)
  117.     real_G_16 = str.format("%x",real_G)
  118.     real_B = type.int(B)
  119.     real_B_16 = str.format("%x",real_B)
  120.    
  121.     //基色长度修正
  122.     ret = str.strleng(real_d_R_16)
  123.     if(ret == 1)
  124.         real_d_R_16 = str.strcat(0,real_d_R_16)
  125.     endif
  126.     ret = str.strleng(real_d_G_16)
  127.     if(ret == 1)
  128.         real_d_G_16 = str.strcat(0,real_d_G_16)
  129.     endif
  130.     ret = str.strleng(real_d_B_16)
  131.     if(ret == 1)
  132.         real_d_B_16 = str.strcat(0,real_d_B_16)
  133.     endif
  134.    
  135.     edit.settext("edit1",real_R_16&real_G_16&real_B_16&"-"&real_d_R_16&real_d_G_16&real_d_B_16)  
  136. endfunction
  137. 功能 按钮0_点击()
  138.     //这里添加你要执行的代码
  139.     线程.开启("偏色计算器.开始功能","")
  140. 功能结束




  141. endnamespace
复制代码
回复 支持 反对

使用道具 举报

板凳
发表于 2015-4-7 13:42:12 | 只看该作者


EZ专版偏色计算器

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-23 11:10 , Processed in 0.163062 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表