关于可选颜色的计算公式

一直没弄清楚可选颜色的计算公式,以前给各位豆友回复时都用——“曲线递增”来糊弄,这也间接给自己一动力,——咱一直以专业自居,这曲线递增四个字怎么也跟“专业”挂不上钩啊。然后脸红着四处找资料,皇天啊厚土啊,终于让我找到了这个公式。。。公式的提供者为Cbyer,帖子来源“设计中国”,原贴已经找不到了,我看到的是转贴,不过原作者有个数值弄错了,总值并不是255,0到255,0也算一个值,总值应该是256。后面细说。而且作者并没有详细说明可选颜色下增减量百分比的事情,算我站在巨人的肩上完善了一些小问题。无论如何,感谢Cbyer同学,没有他就没有今天这篇帖子。

对可选颜色基础性的知识请参阅在下回复的某帖:http://www.douban.com/group/topic/17390321/

鉴于Cbyer的帖子中有很多概念性的词,例如MAX/MID/MIN(maya中常用概念)LIM/INC/DEC,我将它们用更方便理解的汉字词语。以RGB值89、186、116,可选颜色模式为“绝对”举例,如下:

再次强调,下文中的“增减量百分比”是描述可选颜色的操作,而“颜色增减量”则描述颜色RGB数值的变化,请千万别弄混。只要带百分比三个字的,就是可选颜色的油墨量哦。

首先我们知道,可选颜色是按照油墨量来进行加减的,而增加或者减少油墨量是用百分比表示,那么增与减100%,等于可控范围为200%,但是,大家也知道,增减百分比时,颜色RGB数值不是一直在变化的,当增减百分比的量过了某个零界值后,颜色RGB数值就不再变化了。那么首先要解决:一、这个增、减百分比的零界值范围是多少?二、颜色RGB数值增、减量的范围是多少?

答:一、“绝对”模式下,增减百分比零界范围为100%。(相对模式为200%,后面阐述)

二、1、可选颜色下“颜色”选择“红色”、“绿色”、“蓝色”,颜色RGB数值范围为三通道最大值减去中间值(也就是max-mid),我们举例的颜色就是186-116=70,可变化数值总值为70。2、可选颜色下“颜色”选择“黄色”、“青色”、“洋红”,颜色RGB数值范围为三通道中间值减去最小值(也就是mid-min),我们举例的颜色就是116-89=27,可变化数值总值为27。

OK,验证一下:

 

可选颜色下“颜色”选择“绿色”,其下“洋红”增量百分比到72%则到达零界点,颜色G的零界值为135,减量百分比到27%到达零界点,颜色G的零界值为205。72%+27%=99%,差不多为100%(别问我为什么不是100%,小数点后的数值PS是无法直观表述的)。而数值(205-186)+(186-135)=205-135=70。OK,跟我们上面说的一致。

 

可选颜色下“颜色”选择“青色”,其下“黄色”增量百分比到43%为零界,颜色B零界值为104,减量百分比到54%为零界,B零界值为131。43%+54%=97%。数值(131-116)+(116-104)=131-104=27。还是一致。

三、好了,我们弄清楚了范围,接下来我们来解决可选颜色增减百分比之间的比值的问题,也就是说解决增与减的百分比是怎么分配的,为什么是72%与27%,或者43%与54%,而不是50%与50%。只有弄清楚这个,才能最终回答“调节可选颜色某项增加20%,颜色数值变化为多少”。

答:增减比就是颜色原始数值与总量256的比值。比如说G值186,那么186/256=72.6%,而我们上面描述的 可选颜色下“颜色”选择“绿色”,其下“洋红”增量百分比到72%则到达零界点,就是这个意思。

那么我们可以换个说法,可选颜色增量的百分比为针对颜色的原始数值比总值256,公式为:增加量(百分比)=G/256。(RB同理)。可选颜色减量的百分比为1减去针对颜色的原始数据与256的比值,公式为:减少量(百分比)=1-G/256。(RB同理)

四、那么颜色RGB数值的影响值又如何分配呢?为什么是205与135,为什么不能是255与185。

公式:数值最大值为“原始数值+数值影响范围X可选颜色减量百分比”,186+70 X 27.3%=205.11,最大值为205。至于这个27.3%怎么来的,参考三。

那么数值最小值就相对应的,公式:为“原始数值—数值影响范围X可选颜色增量百分比”,186-70X72.6%=135.18,最小值为135.

这是可选颜色下“颜色”选择“绿色”,如果是选择“青色”呢,我们要知道RGB数值范围“青色”可就不是70了,而是27。那么增量百分比为116/256=45.3%,B最小数值为116 – 27X45.3%= 103.76,约等于104,最大值为 116+27X54.7%= 130.77,约等于131。

五、那么最后一个问题了,如果说可选颜色下“颜色”选择“绿色”,其下“洋红”增量百分之五十,那么G值变化应该是多少?

OK,算吧,186-70X50%=151,验证一下是不是:

哈哈,是不是完全一致呢?151哦亲。

这是“绝对”模式,那么“相对”模式呢?——算法一致。不可能吧,算法一致还区别个毛线啊,相对不就等于绝对了?咳咳,我话还没说完,算法虽然一致,但是相对还不太一样。

六、“相对”模式下的区别。1、首先可选颜色增减百分比不再是100%的范围,而是200%,就是说可选颜色下调节增减百分比不存在零界点了。但是,虽然没有零界点,但影响的颜色数值,却还是绝对模式下的算法。比如我们上面说过的:绝对模式下“选择“青色”,其下“黄色”增量百分比到43%为零界(按照计算应该45.3%),颜色B零界值为104”,相对下黄色增量100%,颜色B零界值还是104,相当于把绝对的45.3%拉伸成了100%,可控更精细化。“绝对”下45.3%控制116-104,共12(计算数值为12.231)个值,相当于每个百分点控制0.27,而在“相对”下,100%控制12.231,相当于每个百分点控制0.12231,当然更精细化了。

那么不用我解释如果“相对”下,黄色增量50%,B数值是多少了吧?109.8855,验证如下:

我们原谅PS没法精确表示小数点后的数值吧,它表示为109了。

2、“相对”模式下,如果颜色RGB数值大于128,那么将存在个修正值,则修正颜色数值减少量,强制将其等同与颜色数值增加量。

我们还用这个颜色举例,G原始值为186,超出了128。在可选颜色“相对”模式,“颜色”选择“绿色”,其下“洋红”减量百分比到100%,G值增加到205,与“绝对”模式的最大值205一致,那么算法铁定也一致了。那么增加洋红到100%呢,这个颜色G的最小值还是135吗?

验证如下:

可以看到,数值不再是135了,而是167。根据咱们上面说的,数值减少量强制修正为与增加量一致。那么G增量是多少?205-186=19。那么186-19等于多少呢——167。

皆大欢喜,皆大欢喜。

我可算把这个坑填满了~~~~~~~呜呼哀哉。

转载自:http://www.douban.com/note/324952744/

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Commonly asked questions and answers

Phone:
+1 (555) 000-0000
Email:
info@mysite.com
What does your web design and development process include?
Egestas nullam vehicula, at litora pharetra lacinia. Integer suspendisse condimentum, urna etiam, risus sollicitudin primis varius erat. Donec senectus massa, hendrerit vulputate convallis felis.

Aenean fames risus sodales, viverra accumsan suspendisse, eleifend nunc pharetra hendrerit hac class. Viverra sit vitae dictumst, massa consequat hac, nullam tristique vehicula metus eleifend curabitur. Tellus nostra commodo, et inceptos facilisis neque.

Augue vestibulum netus, neque ante a turpis molestie. Phasellus maecenas, hendrerit varius tristique non. Egestas rutrum ornare augue, suspendisse vehicula pellentesque, dictum ad cubilia nisi lectus duis sodales at. Pretium arcu dictumst, inceptos hendrerit, ad sociosqu pellentesque sollicitudin curabitur curae.

Newsletter subscribe!

Enter your email to unlock an exclusive 10% discount on professional website development tailored to your business needs.

Have more questions?

Let’s schedule a short call to discuss how we can work together and contribute to the success of your project or idea.