数字图像入门 颜色的表达方式
夏昆冈 于 2011.06.09 10:57:42 | 源自:www.soomal.com | 版权:原创 | 平均/总评分:09.29/65

颜色可以通过数字方式记录,以24位图像为例,它可以最多记录16777216种不同的颜色,分别记录为0-16777215的数字。但这些色彩要如何表达呢?随便取一个数字,2456432,它是什么颜色?并不直观。它是否有易用易读的表达方式?

  • 在编程中,经常会用到一个RGB函数来表达颜色,它的表达式为:

    • RGB(红色值、绿色值、蓝色值)
  • 这个函数非常直观,例如RGB(0,0,0)为黑色、RGB(255,255,255)为白色、RGB(255,0,0),为红色、RGB(127,127,127)为中度灰、RGB(0,0,255),为蓝色等等,它通过函数方式分别确定红绿蓝数值,得到一个最终合成色的数值。这种表达方式不只是用于编程,它也可以用于标记性语言中用于标记颜色。在绘图软件当中,例如Photoshop,使用取色器取色,也会单独显示当前色彩的红绿蓝原色值,这比直接显示一个合成色的数值要更加清晰明了。

    RGB是一个函数,它最终会返回合成色对应的整数值,RGB(0,0,0)的值为0,RGB(255,255,255)的值为16777215,RGB(255,0,0)的值为255,RGB(0,255,0)的值为65280,RGB(0,0,255)的值为16711680。它的求值公式基本为:

    • 合成色对应的整数值 = 红色值+绿色值*256+蓝色值*65536
  • 这些色彩值如果用十六进制表达,会发现其中规律。24位图像最大色彩值,换成十六进制为FFFFFF,六位的十六进制数字,每两位对应一个原色的值。其表达方式也非常直观明了。低字节值表示红色,中字节值表示绿色,高字节值表示蓝色。因此使用十六进制数值来表达颜色,也十分广泛。主要用于标记性语言当中。HTM[网页]、XML均属于标记性语言。

  • 在标记性语言当中,会在数值前加上#号,这个#没有特殊意义,主要是防止程序将“FFFFFF”这样的值当做普通字符串处理。它的“位”与原色的对应关系也有不同,红色与蓝色的位置对调,低字节值表示蓝色,中字节值表示绿色,高字节值表示红色。这样重新组合后的结果就是从左至右依次红绿蓝排列,阅读性上更好。

    这两种表达方式虽有区别,但都属于RGB颜色系统,除此之外,还有2种比较常见的颜色系统,这里也简单介绍一下。

  • 除了RGB之外,还有一个色相、饱和度和亮度系统 (HSB),它定义颜色的方式不是利用三原色。色相记录色相环的度数,0度时为红色,120度时为绿色,240度时为蓝色,其他度数为原色之间的中间色,记录住度数,就记住了颜色,色相值的取值范围为0-360。S与B分别表示饱和度和亮度,取值范围0-100。.它表达色彩的形式与RGB相似,例如红色为HSB(0,100,100),但其表达原理与RGB有本质不同。这种表达方式多用于绘图软件当中。

    另外还有一种较为常见的颜色系统——CMYK,这个与印刷有关。CMY是3种印刷油墨名称的首字母:青色[Cyan]、品红色[Magenta]、黄色[Yellow]。这三种色彩理论上能合成黑色,实际上只能得到深棕色,因此又加入了黑色Black,CMYK中的K即黑色,取用的尾字母,以避免和蓝色[Blue]混淆。这个颜色系统是针对印刷品而设计的。

    为什么要单独拿出一篇来说色彩的表达方式呢?因为在后面的篇幅当中,可能会涉及到图像的处理与合成,可能会出现类似于RGB(255,127,63)和#FF8533这样的“奇怪字符串”,你需要知道这代表了某种颜色。最后值得强调的是,不管哪种表达式,它最后返回的都是一个数值,这是数字图像的构成基础。在接下来的篇幅当中,我们会逐渐强化一个概念,这些色彩值是整数,而非小数,这个概念比较重要,为什么重要,我们会在后续的篇幅中一一说明。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    211.069.194.***
    211.069.194.***
    发表于2017.04.26 17:19:38
    35
    03
    发表于2012.02.16 16:41:17
    32
    114.098.***.***
    114.098.***.***
    好啊好啊
    发表于2011.09.23 09:26:26
    31
    色域也是个基本概念,希望介绍一下,比如在选购显示器时就需要了解。
    发表于2011.07.01 10:21:56
    30
    125.091.***.***
    125.091.***.***
    数字图像入门非常好,如果有可能的话,也希望往后可以多发些类似数码摄像知识的文章,谢谢!
    发表于2011.06.21 16:00:28
    29
    123.138.***.***
    123.138.***.***
    数码多网站的图片压缩质量一直很差..建议用png格式.会好很多.
    发表于2011.06.13 00:17:07
    28
    058.048.***.***
    058.048.***.***
    楼主说说Lab颜色模式呗。这个色域空间很大
    发表于2011.06.12 12:16:34
    27
    03
    发表于2011.06.11 11:10:06
    26
    03
    发表于2011.06.10 10:51:41
    24
    不过不知道电脑是怎样显示黑色的?怎样可以用光来表现纯黑色?
    发表于2011.06.10 00:25:25
    23
    03
    发表于2011.06.10 00:25:14
    22
    03
    最近想学photoshop和coreldraw,先补补课。
    发表于2011.06.10 00:22:13
    21
    03
    发表于2011.06.10 00:10:44
    20
    03
    还蛮好玩的。。那时候就用画板做了个开关机画面,然后用软件设置一下就可以的了。。。
    发表于2011.06.09 23:30:24
    19
    03
    白黄青绿品红蓝黑~
    发表于2011.06.09 16:30:36
    17
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    2726 为防止广告机贴垃圾,不得已而为之
    表情
    正文