数字图像入门 颜色的表达方式
夏昆冈 于 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
    218.106.182.***
    218.106.182.***
    发表于2017.09.13 09:15:44
    27
    119.085.219.***
    119.085.219.***
    发表于2013.06.21 16:19:19
    24
    123.151.039.***
    123.151.039.***
    发表于2013.06.09 13:55:05
    23
    183.063.009.***
    183.063.009.***
    发表于2013.01.29 15:58:23
    22
    03
    多谢啊!
    发表于2013.01.02 10:57:52
    21
    03
    发表于2013.01.02 03:51:48
    20
    125.069.077.***
    125.069.077.***
    发表于2013.01.01 22:46:02
    19
    03
    适合小孩子音乐入门。
    发表于2012.12.31 23:11:16
    18
    03
    发表于2012.12.31 20:57:48
    17
    123.138.039.***
    123.138.039.***
    发表于2012.12.31 09:53:49
    16
    03
    发表于2012.12.31 05:15:17
    15
    03
    我喜欢
    发表于2012.12.30 23:52:41
    14
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    8651 为防止广告机贴垃圾,不得已而为之
    表情
    正文