V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vzyw
V2EX  ›  程序员

给一个 rgb 数值,怎么知道这个颜色的名称?

  •  
  •   vzyw · 2022-02-14 15:50:50 +08:00 · 3426 次点击
    这是一个创建于 773 天前的主题,其中的信息可能已经有所发展或是发生改变。

    色弱患者求助,救救孩子吧

    比如:

    #FF0000 这个是红色

    #00FF00 这个是黄色

    #0000FF 这个是蓝色

    我想知道任意一个 rgb 颜色到底是叫什么该怎么办?

    不需要非常精确,但是比如有些比较相近的颜色,想知道到底是黄色还是绿色、紫色还是蓝色

    第 1 条附言  ·  2022-02-16 15:32:32 +08:00

    感谢大家的回复。

    问这个问题的初衷是因为自己色弱,看东西无法确定这个到底什么颜色。在电脑上能用取色器获取颜色 16 进制值,所以想通过这个值知道到底是什么颜色。

    发在程序员这个节点确实收获很大,大家的解决方案都不错。 19 楼还有现成的产品,真的很感谢。

    22 条回复    2022-02-16 15:41:57 +08:00
    cssk
        1
    cssk  
       2022-02-14 15:52:03 +08:00 via iPhone
    只有少数的颜色有名字
    TimePPT
        2
    TimePPT  
       2022-02-14 15:54:56 +08:00
    自己维护套色卡对照表,具体 rgb 值和色卡值求相似度,匹配最高那个?

    色卡的话,可以搜,有各种领域标准色卡对照表可以用
    0x2CA
        3
    0x2CA  
       2022-02-14 15:55:03 +08:00
    有名字的是少数的,你可以先写好现有颜色对应的名字,rgb 只是一个坐标,(r,g,b)根据计算距离求得最近的颜色名称
    yggd
        4
    yggd  
       2022-02-14 15:56:00 +08:00   ❤️ 2
    不是每个值都对应一个名字

    参考一下: http://zhongguose.com/
    mcfog
        5
    mcfog  
       2022-02-14 16:00:22 +08:00
    hsl 坐标更符合人眼感受,先转换 hsl 坐标系应该能获得更好的效果
    不过 hue 的单位不一样需要处理一下
    3dwelcome
        6
    3dwelcome  
       2022-02-14 16:02:58 +08:00
    RRGGBB 这格式,给计算机看的。

    你要用前端的思维思考颜色选择问题。

    比如前端 tailwindCSS ,都是用红色-100(最亮) ~ 红色-900(最暗)来定义,中间都是过渡色。

    你脑补一下,红色-400 和红色-600, 就是一个亮红,另一个暗红。
    mainjzb
        7
    mainjzb  
       2022-02-14 16:08:39 +08:00
    转换成 hsl 看角度。能大致区分什么颜色
    mainjzb
        8
    mainjzb  
       2022-02-14 16:09:12 +08:00   ❤️ 2
    vzyw
        9
    vzyw  
    OP
       2022-02-14 16:17:39 +08:00
    @mainjzb 这一圈下来是 红橙黄绿青蓝紫吗
    Kilerd
        10
    Kilerd  
       2022-02-14 16:27:18 +08:00
    找出所有带名字的颜色,然后计算 distance ,找出最接近的那个。
    icyalala
        11
    icyalala  
       2022-02-14 16:30:42 +08:00
    Vegetable
        12
    Vegetable  
       2022-02-14 16:31:26 +08:00
    简单看过,提供一个思路。

    https://www.w3school.com.cn/html/html_colornames.asp

    我之前是取出 rgb 之后直接根据 RGB 计算欧氏距离,寻找最近的那个名字。
    ColorfulBoar
        13
    ColorfulBoar  
       2022-02-14 17:00:33 +08:00   ❤️ 3
    听着很像是个 XY problem……虽然不知道你真实需求是啥,但一般来说你找出来颜色名字都没有什么意义:不同环境会极大影响人的视觉感受,非色弱没有经过训练也很容易搞错真实环境中的颜色 & 很多颜色用物体命名的,如果你觉得草和番茄颜色差不多,那草绿和番茄红这两个名字可能不能给你带来任何信息。
    所以不如好好学色彩理论,色弱也能配出好看的颜色来
    meshell
        14
    meshell  
       2022-02-14 17:09:49 +08:00
    看这个吧 https://coolors.co/
    EsCoffier
        15
    EsCoffier  
       2022-02-14 17:34:15 +08:00
    微软出的 PowerToys 里面的取色器有这么一项功能,可以看一下
    MiniGhost
        16
    MiniGhost  
       2022-02-14 17:43:06 +08:00   ❤️ 1
    RGB 三原色可以映射成 X 、Y 、Z 三维正方体,每个轴都是 0-255 的正整数

    维护一个确定的颜色名称表,比如#FF0000 红色,等于( 255 ,0 ,0 )是三维正方体上的一个坐标。

    每一个随机的颜色点,可以遍历一遍颜色表,求两点之间的相对距离
    公式是:d=sqrt(x1-x2)^+(y1-y2)^+(z1-z2)^)

    如果两点之间距离某个标准颜色小于一个值,比如 #FF0000 与 #FE0000 距离为 1 ,那么就可以认为是红色



    如果颜色表过大,可以剪枝一下,三维中的任意维度差大于某个值就直接 skip
    GeruzoniAnsasu
        17
    GeruzoniAnsasu  
       2022-02-14 17:49:54 +08:00   ❤️ 1
    @vzyw

    我大概能理解你的期望是什么,但很遗憾,配色是很复杂很专业的事。颜色不是静止绝对的,在不同光照条件或者说背景色下一个绝对色值完全可以呈现不同的色彩,而且相同色相、不同饱和度和亮度的颜色也可以叫成同一个名字,当你感官无法区分它们的时候,靠粗略的名字更没办法准确地辨识或选择它们。

    我觉得 #13 的建议是很可取的,即使感官不能有效区分颜色,但色彩理论、配色方法这些是能通过理论学习提高的,有些从事绘画的人也色弱,他们选色就是靠的背色表。 比如 就算你分辨不出 橙色棕色绿色的区别,但你完全可以在色相环上选相近或者互补的位置,这是不需要知道这个颜色在其他人眼里看起来究竟是什么样的。
    westoy
        18
    westoy  
       2022-02-14 18:02:30 +08:00   ❤️ 1
    体检表上全是色盲, 但实际是全色弱的同时玩摄影的表示你真的需要一块 spidercheckr
    lynan
        19
    lynan  
       2022-02-15 10:03:20 +08:00   ❤️ 1
    之前写过一个计算颜色名称的页面
    可以看看 https://lynan.cn/static/random_color.html
    颜色数据来源于 https://www.shouce.ren/api/html/html4/appendix-color.html IE4+预命名颜色
    nonduality
        20
    nonduality  
       2022-02-15 10:16:38 +08:00
    Python 有个包叫 colorpedia ,用起来很方便
    vzyw
        21
    vzyw  
    OP
       2022-02-16 15:09:50 +08:00
    @lynan 太赞了 大兄弟
    vzyw
        22
    vzyw  
    OP
       2022-02-16 15:41:57 +08:00
    @ColorfulBoar 草是绿色,番茄是红色,着两种颜色不相近,所以可以辨别清楚。但是比如有些黄色和绿色在一起,就无法区分。比如亮绿色和黄色,很难区分 https://s3.bmp.ovh/imgs/2022/02/b7f4e3fc3f62300d.png
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1197 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:16 · PVG 07:16 · LAX 16:16 · JFK 19:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.