本文介绍了如何获得两种颜色之间的颜色?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
- 例如(15,29,3E)变成(21,41,62) br />
- 例如((21 + 1)/ 2,(41 + 37)/ 2,(62 + 73)/ 2)= ,67)
$ b $bÚ
- 例如(11,39,67) - >(0B,27,43)
- 例如(0B,27,43) - > #0B2743
编辑:实施并不像我刚才说的那样很容易。我花时间写了几种语言的代码。
I have two colors:
#15293E
#012549
How can I find the color that is half way in between them? Is there some way to do this calculation?
解决方案
As Mr Lister just said, it is easy to automate the calculation with any programming language :
- Separate your two colors into their 3 color numbers for Red, Green, Blue : (r1,g1,b1) and (r2,g2,b2).
- For example #15293E, #012549 become ("15", "29", "3E"), ("01", "25", "49")
- For example #15293E, #012549 become ("15", "29", "3E"), ("01", "25", "49")
- Convert each color string into an integer, specifying explicitly that you are parsing a hexadecimal-based representation of a number.
- For example ("15", "29", "3E") becomes (21, 41, 62)
- For example ("15", "29", "3E") becomes (21, 41, 62)
- Calculate the average (r',g',b') = ( (r1+r2)/2, (g1+g2)/2, (b1+b2)/2 ).
- For example ( (21+1)/2, (41+37)/2, (62+73)/2) = (11, 39, 67)
- For example ( (21+1)/2, (41+37)/2, (62+73)/2) = (11, 39, 67)
- Convert them again to strings , specifying explicitly that you are generating two-digit hexadecimal representations (pad with a zero when necessary).
- For example (11, 39, 67) -> ("0B", "27", "43")
- For example (11, 39, 67) -> ("0B", "27", "43")
- Concatenate a sharp character followed by the 3 strings
- For example ("0B", "27", "43") -> "#0B2743"
- For example ("0B", "27", "43") -> "#0B2743"
Edit : Implementation is not "very easy" as I initially stated. I took the time to write the code in several languages on Programming-Idioms .
这篇关于如何获得两种颜色之间的颜色?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!