如何获得两种颜色之间的颜色? [英] How can I get the color halfway between two colors?

查看:266
本文介绍了如何获得两种颜色之间的颜色?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有两种颜色:

 #15293E 
#012549

如何找到它们之间的一半的颜色?有没有办法做这个计算?

解决方案

正如李斯特先生刚才说的,很容易通过任何编程自动计算语言:


  1. Red,Green,Blue :(r1,g1,b1)and(r2,g2,b2)。



    • 例如#15293E,#012549成为(15,29,3E),(01,25,49)
      $ b $


    • 将每个颜色字符串转换为整数,明确指定您正在解析基于十六进制的表示数字。


      • 例如(15,29,3E)变成(21,41,62) br />


    • 计算平均值(r',g',b')=((r1 + r2)/ 2, g1 + g2)/ 2,(b1 + b2)/ 2。


      • 例如((21 + 1)/ 2,(41 + 37)/ 2,(62 + 73)/ 2)= ,67)
        $ b $bÚ


    • 将它们再次转换为字符串,明确指定您正在生成两位数字十六进制表示(必要时,填充为零)。


      • 例如(11,39,67) - >(0B,27,43)




    • 连接一个尖锐字符,后跟3个字符串


      • 例如(0B,27,43) - > #0B2743

      li>

编辑:实施并不像我刚才说的那样很容易。我花时间写了几种语言的代码 on Programming-Idioms


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 :

  1. 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")

  2. 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)

  3. 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)

  4. 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")

  5. Concatenate a sharp character followed by the 3 strings
    • 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 .

这篇关于如何获得两种颜色之间的颜色?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆