找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 42|回复: 2

[搬运]16进制颜色详解

[复制链接]

32

主题

73

回帖

2684

积分

特别鸣谢

現実的理论主义者

积分
2684
发表于 2024-9-23 19:50:56 | 显示全部楼层 |阅读模式
把隐藏房间的两个帖子搬过来一部分,用来引流

为什么一串字符能改变字体的颜色,这串字符的含义是什么
首先要知道的是 什么叫做16进制:
我们常见的运算都是10进制的,像是1,2,5,8,13,5+8=13,每10个数进一位
16进制就是每16个数字进一位,例如1,3,5,7,9,A,2+9=B,是的超过10的数字会写成字母,所以会多出A-F这几个字母
这时候看3C+2E=6A,觉得熟悉了吗,和颜色代码很像对吧,因为颜色代码就是一串16进制的数字。

有了这个基础就可以开始将颜色了,颜色代码实际上是由3串独立的16进制数组成。
分别代表了R(红) G(绿) B(蓝)光学三原色,每个颜色的取值范围是00-FF,换算成10进制就是0-255
也就是说16进制RGB颜色一共有256^3(16777216)种
接下来试试实际操作吧。
举个简单的例子:纯红(#FF0000)拆分一下 R(FF)G(00)B(00) 这段16进制数组中只有代表红色的16进制数是FF,也就是最大值,所以显示出来是纯红色的
以此类推:酸橙(#00FF00)  纯蓝(#0000FF)
稍微复杂一些的混色: 金色(#FFD700) 拆分一下 R(FF)G(D7)B(00) 这段16进制数字中红色是FF,绿色D7,两者混合就成了黄色,因为红色数值更高,所以会偏橙色,但绿色数值相差不大,最后就成了金色的效果
以此类推:鹿皮鞋(#FFE4B5) 钢蓝(#4682B4) 深紫罗兰色(#9400D3)
另一个例子:纯黑(#000000)纯白(#FFFFFF),当所有颜色都是00的时候就是没有颜色,那就是纯黑,当所有颜色都满值的时候就是纯白
以此类推:色彩一样但不完全满时就是灰色 浅灰色(#D3D3D3)  深灰色(#A9A9A9) 暗灰色(#696969)

接着就是简写,为什么有的16进制数只有3个数字呢?
因为两个一样的字符可以被简写成一个字符,例如(#FF0000)等效于(#F00) (#3EA)等效于(#33EEAA)
以此类推:纯红(#F00)  酸橙(#0F0)  纯蓝(#00F)  纯黄(#FF0)

一些题外话,也许你注意到了,那些颜色的名称。
有相当数量的颜色,有自己的名称,这些颜色的RGB值都是独有。不管到了哪里只要你提到这些颜色,那就是对应了唯一的一种RGB值
例如: 军校蓝\军服蓝(#5F9EA0) 水鸭色\水鸭蓝\水鸭绿(#008080)

在标准RGB上再加上一个透明度的维度
标准RGB:[#FF0099]
带透明度的RGB [#FF0099FF]
可以看到原本的RGB后面多了一个FF这串就是透明度的值,从00(完全透明)到FF(完全不透明)

同理缩写法也适用于带透明度的RGB颜色
[#FF0099FF]等效于[#F09F]

再来这段RGB值
[#FF70]等于 [#FFFF7700] 只看最后透明度的值[00]意味着把颜色设置成透明的了,当然什么都看不见
而这个值不透明时的颜色应该是[#FF7]
以此类推[#9ec0] [#7280] [#00FECA00] 只要是4个或者8个的RGB值,就代表包含透明度的RGB颜色,当透明度为00是这个颜色就是透明的



回复

使用道具 举报

32

主题

73

回帖

2684

积分

特别鸣谢

現実的理论主义者

积分
2684
 楼主| 发表于 2024-9-23 19:52:53 | 显示全部楼层
回复

使用道具 举报

67

主题

1038

回帖

2955

积分

咸鱼

积分
2955
发表于 2024-9-23 19:59:12 | 显示全部楼层
1. 颜色的基本概念
颜色是我们通过视觉感知到的,通常由三种基本颜色(红色、绿色和蓝色)混合而成。根据不同的组合,我们可以得到多种颜色。

2. RGB颜色模型
- RGB代表红色(Red)、绿色(Green)和蓝色(Blue)。
- 在RGB模型中,每种颜色的强度用0到255之间的数字表示。例如:
  - 红色:(255, 0, 0) 代表纯红色
  - 绿色:(0, 255, 0) 代表纯绿色
  - 蓝色:(0, 0, 255) 代表纯蓝色
  - 白色:(255, 255, 255) 代表三种颜色的最大强度
  - 黑色:(0, 0, 0) 代表三种颜色的最小强度

3. 16进制颜色表示法
16进制颜色表示法是另一种表示颜色的方式,常用在网页设计中。格式是#RRGGBB
- RRGGBB分别表示红、绿、蓝的强度。
- 每对字符的值可以从00到FF,表示0到255的强度。

十六进制的基础:
- 十六进制是一种基数为16的数字系统,使用数字0-9和字母A-F来表示。
- 在颜色表示中,00表示最低强度,FF表示最高强度。

例子:
- #FF0000 代表纯红色
- #00FF00 代表纯绿色
- #0000FF 代表纯蓝色
- #FFFFFF 代表白色
- #000000 代表黑色

4. 压缩表示法
有时候我们可以使用压缩的格式来表示颜色。例如:
- #abc 可以被扩展为 #aabbcc

压缩格式解释:
- #abc
  - a 代表红色的强度:aa(170)
  - b 代表绿色的强度:bb(187)
  - c 代表蓝色的强度:cc(204)

因此,#abc 等同于 #aabbcc,表示的颜色是相同的。

5. RGBA颜色模型
RGBA是RGB的扩展,增加了一个Alpha(透明度)通道。格式是(R, G, B, A)
- RGB和之前一样表示红、绿、蓝的强度,范围是0到255。
- A代表透明度,通常用0到1之间的数字表示:
  - 0表示完全透明
  - 1表示完全不透明

例如:
- rgba(255, 0, 0, 0.5) 表示半透明的红色
- rgba(0, 255, 0, 1) 表示完全不透明的绿色

6. 透明度的扩展表示法
对于带有透明度的颜色,我们可以使用8个字符的格式,即 #RRGGBBAA
- RRGGBB分别表示红、绿、蓝的强度。
- AA表示透明度。

例子:
- #abcd
  - a 代表红色的强度:aa(170)
  - b 代表绿色的强度:bb(187)
  - c 代表蓝色的强度:cc(204)
  - d 代表透明度:dd(221,转换为十进制为221)

因此,#abcd 可以被扩展为 #aabbccdd,它表示相同的颜色,并且具有一定的透明度(221/255,大约87%不透明)。

总结
- RGB是用红、绿、蓝三种颜色混合来表示颜色。
- 16进制颜色表示法使用六个字符(以#开头)来表示颜色,且可以使用压缩格式(如#abc)来简化表示。
- RGBA是RGB的扩展,加入了透明度的概念,格式为(R, G, B, A)
- 透明度的扩展表示法使用八个字符(如#RRGGBBAA),其中AA表示透明度。


智猫在此,喵星人的智慧,二哈的灵魂。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|WTFBBS

GMT+8, 2024-10-24 07:30 , Processed in 0.086488 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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