如何在python中使用RGB值和16进制颜色值

   使用R语言或者python时,经常需要设置颜色,一般常用的颜色表示方法是RGB或者16进制的表示方法,本篇文章着重对RGB和16进制的表示方法进行详细介绍:

首先RGB值:

     RGB 值指的是红色 (R)、绿色 (G) 和蓝色 (B) 三种颜色在某种颜色下的数值表示。在RGB模型中,每种颜色的值通常用一个 0~255 范围内的整数来表示。混合这三种颜色不同比例的RGB值可以得到任何一种颜色。

       较高的RGB值表示更强的颜色通道强度,因此颜色更鲜艳、更亮。例如,RGB值为(255,0,0)表示最高强度的红色,而(0,255,0)表示最高强度的绿色,(0,0,255)表示最高强度的蓝色。如果三个通道的值都很高,那么这个颜色就非常明亮鲜艳,比如(255,255,255)表示最高强度的白色。

      相反地,较低的RGB值表示较弱的颜色通道强度,颜色更暗淡。例如,RGB值为(128,0,0)表示相对较弱的红色,而(0,128,0)表示相对较弱的绿色,(0,0,128)表示相对较弱的蓝色。如果三个通道的值都很低,那么这个颜色就非常暗淡,比如(0,0,0)表示最低强度的黑色。

       特殊的,当R=G=B值代表灰色,比如(128,128,128)代表50%的灰色,值越大则更亮的灰色。

下面用python代码直观的展示一下不同强度的红色:

import matplotlib.pyplot as plt

import numpy as np

Reds = np.zeros((10,3), dtype= np.uint8)

Reds[:,0] = np.linspace(0,255,10) 

print(Reds)

输出为:

array([[  0,  0,  0],

[ 28,  0,  0],

[ 56,  0,  0],

[ 85,  0,  0],

[113,  0,  0],

[141,  0,  0],

[170,  0,  0],

[198,  0,  0],

[226,  0,  0],

[255,  0,  0]], dtype=uint8)

一共10个颜色,只改变了RGB三个值中的R值(由0-255,分为了10个梯度),接着使用imshow函数进行展示:

#使用np.newaxis将原数组转为三维数组

plt.imshow(Reds[np.newaxis,:,:])

plt.axis('off')

plt.show()

运行结果如下:


不同强度的灰色示例代码如下:

Greys = np.zeros((10,3), dtype= np.uint8)

Greys[:,0] = np.linspace(0,255,10) 

Greys[:,1] = np.linspace(0,255,10)

 Greys[:,2] = np.linspace(0,255,10) 

plt.imshow(Greys[np.newaxis,:,:])

plt.axis('off')

plt.show()

运行结果如下:


接着介绍一下16进制的颜色表示规则,以及两者之间如何进行转换:

       16进制颜色表示法则是用一个6位的16进制数来表示颜色。其中前两位表示红色的亮度,中间两位表示绿色的亮度,后两位表示蓝色的亮度。每一位的取值范围是0到F(十六进制的F对应十进制的15)。例如,红色可以表示为#FF0000,其中前两位为FF代表RGB中的R值为255(15*16+15)。

附一个两者之间相互的转换的python函数:

1. 将RGB值转换为16进制函数(使用python内置的hex函数):

def RGB_to_Hex(inrgb):    

    rval = hex(inrgb[0])[-2:].replace("x", "0")  

    gval = hex(inrgb[1])[-2:].replace("x", "0")   

    bval = hex(inrgb[2])[-2:].replace("x", "0")    

    hexval = "#" + rval.upper() + gval.upper() + bval.upper()    

    return hexval

RGB_to_Hex((255,128,0))

运行结果如下:

'#FF8000'

2. 将16进制值转换为RGB值(使用python内置的int函数):

def Hex_to_RGB(inhex):      

    rval = inhex[1:3]      

    gval = inhex[3:5]      

    bval = inhex[5:]     

    rgbval = (int(rval, 16), int(gval, 16), int(bval, 16))      

    return rgbval

Hex_to_RGB(#FF8000') 

运行结果如下:

(255, 128, 0)

除了上述所列的颜色,下面是其它一些常用颜色的RGB及16进制的表示值:

青色:(0, 255, 255) / #00FFFF

黄色:(255, 255, 0) / #FFFF00

橙色:(255, 165, 0) / #FFA500

紫色:(128, 0, 128) / #800080

粉色:(255, 192, 203) / #FFC0CB

棕色:(165, 42, 42) / #A52A2A

CommonColors = np.array([(0,255,255), (255,255,0), (255,165,0), (128,0,128), (255,192,203), (165, 42, 42)])

plt.imshow(CommonColors[np.newaxis,:,:])

plt.xticks(ticks=range(6),labels=["cyan", "yellow", "orange", "purple", "pink", "brown"],fontsize = 15)

plt.yticks([])

plt.show()

运行结果如下:


现在应该对常用的这两种颜色表示方法都理解了吧!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容