【图片】Python对RGB颜色与16进制颜色进行互转

RGB颜色被称为“真彩色”,是Photoshop中默认使用的颜色,也是最经常使用的一种颜色模式。RGB模式的图像由3个颜色通道组成,分别为红色通道(Red)、绿色通道(Green)和蓝色通道(Blue)。
每一个通道均使用8位颜色信息,每种颜色的取值范围是0~255,这三个通道组合能够产生1670万余种不一样的颜色。python


1. ARGB与RGB、RGBA的区别
ARGB 是一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常见于32位位图的存储结构。
RGB 色彩模式是工业界的一种颜色标准,是经过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来获得各式各样的颜色的,RGB便是表明红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的全部颜色,是目前运用最广的颜色系统之一。
RGBA 是表明Red(红色) Green(绿色) Blue(蓝色)和Alpha的色彩空间。虽然它有的时候被描述为一个颜色空间,可是它其实仅仅是RGB模型的附加了额外的信息。
采用的颜色是RGB,能够属于任何一种RGB颜色空间,可是Catmull和Smith在1971至1972年间提出了这个不可或缺的alpha数值,使得alpha渲染和alpha合成变得可能。
提出者以alpha来命名是源于经典的线性插值方程αA + (1-α)B所用的就是这个希腊字母。
PNG是一种使用RGBA的图像格式。
R:红色值。正整数 | 百分数
G:绿色值。正整数 | 百分数
B:蓝色值。正整数 | 百分数
A:Alpha透明度。取值0~1之间。(颜色的透明度)
此色彩模式与RGB相同,RGB定义了颜色的红绿蓝值,在RGB模式上新增了Alpha透明度.
alpha通道通常用做不透明度参数。若是一个像素的alpha通道数值为0%,那它就是彻底透明的(也就是看不见的),而数值为100%则意味着一个彻底不透明的像素(传统的数字图像)。在0%和100%之间的值则使得像素能够透过背景显示出来,就像透过玻璃(半透明性),这种效果是简单的二元透明性(透明或不透明)作不到的。它使数码合成变得容易。alpha通道值能够用百分比、整数或者像RGB参数那样用0到1的实数表示。app

2. 如何将RGB格式颜色与16进制颜色互转函数

# -!- coding: utf-8 -!-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#做者:cacho_37967865
#博客:https://blog.csdn.net/sinat_37967865
#文件:RGB.py
#日期:2019-06-19
#备注:Python对RGB颜色与16进制颜色进行互转,而后建立对应颜色的图片并保存下来
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from PIL import Image


# RGB格式颜色转换为16进制颜色格式
def RGB_to_Hex(rgb):
    RGB = rgb.split(',')            # 将RGB格式划分开来
    color = '#'
    for i in RGB:
        num = int(i)
        # 将R、G、B分别转化为16进制拼接转换并大写  hex() 函数用于将10进制整数转换成16进制,以字符串形式表示
        color += str(hex(num))[-2:].replace('x', '0').upper()
    print(color)
    return color


# 16进制颜色格式颜色转换为RGB格式
def Hex_to_RGB(hex):
    r = int(hex[1:3],16)
    g = int(hex[3:5],16)
    b = int(hex[5:7], 16)
    rgb = str(r)+','+str(g)+','+str(b)
    print(rgb)
    return rgb


# 建立90*35尺寸的颜色并保存
def new_image(color,outfile):
    new_image = Image.new("RGB", (90, 35), color)
    new_image.save(outfile)


# 获取全部的RGB颜色
def get_allRGB():
    rgb = []
    for i in range(0,256):
        for j in range(0,256):
            for c in range(0,256):
                rgb.append(str(i)+','+str(j)+','+str(c))
    return(rgb)


def main():
    color = RGB_to_Hex('255,127,2')
    outfile = 'color/' + str(color)+'.png'
    new_image(color,outfile)


if __name__ == '__main__':
    main()
    #Hex_to_RGB('#FF7F02')

3. 二进制、十进制、8进制、16进制转换spa