16进制颜色值转RGB颜色值

47 篇文章 3 订阅
41 篇文章 10 订阅

常规项目:

# 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)
    return r,g,b
def add_bg_color(image, rgb):
    bg_img = np.zeros((image.shape[0], image.shape[1], 3), np.uint8)
    bg_img[:, :, 0] = rgb[0]
    bg_img[:, :, 1] = rgb[1]
    bg_img[:, :, 2] = rgb[2]

    alpha = image[:, :, 3] / 255.
    #print(alpha)
    alpha_r = alpha[:, :, np.newaxis]
    comp = image[:, :, :3] * alpha_r + bg_img * (1 - alpha_r)
    comp = np.clip(comp, 0, 255)
    comp = comp.astype(np.uint8)

    return comp
    
print(hex_to_rgb('#ff0000'))
comp = add_bg_color(comp, hex_to_rgb('#ff0000'))

flask项目:

# 16进制颜色格式颜色转换为RGB格式
def hex_to_rgb(hex):
    r = int(hex[0:2],16)
    g = int(hex[2:4],16)
    b = int(hex[4:6], 16)
    return r,g,b
def add_bg_color(image, rgb):
    bg_img = np.zeros((image.shape[0], image.shape[1], 3), np.uint8)
    bg_img[:, :, 0] = rgb[0]
    bg_img[:, :, 1] = rgb[1]
    bg_img[:, :, 2] = rgb[2]

    alpha = image[:, :, 3] / 255.
    #print(alpha)
    alpha_r = alpha[:, :, np.newaxis]
    comp = image[:, :, :3] * alpha_r + bg_img * (1 - alpha_r)
    comp = np.clip(comp, 0, 255)
    comp = comp.astype(np.uint8)

    return comp
    
if bg_color == '' or bg_color == 'None' or bg_color is None:
    img_result_bg = img_result
else:
    img_result_bg = add_bg_color(img_result, hex_to_rgb(bg_color))

10进制转RGB:

#输入:hex为0x43848,在转换的时候需要高位补零为:043848,输出为:4,56,72
def hex_to_rgb_with_char(hex):
    # r = int(hex[2:4], 16)
    # g = int(hex[4:6], 16)
    # b = int(hex[6:8], 16)

    hex_tmp = hex[2:].zfill(6)
    if len(hex) < 8:
        print('*******', hex_tmp)
    r = int(hex_tmp[0:2], 16)
    g = int(hex_tmp[2:4], 16)
    b = int(hex_tmp[4:6], 16)
    return r, g, b
#输入item['media']['color']为10进制:276552
 if item['media']['isBG']:
     if item['media'].get('color', 'not_exist') != 'not_exist':
         color_16 = hex(item['media']['color'])
         r, g, b = hex_to_rgb_with_char(color_16)
         print('color:', r, g, b)
         bg_img = Image.new('RGB', (w, h), (r, g, b))

参考资料
Python获取任意渐变色区段的16进制色值列表
Python 转换RGB颜色值的示例代码
将16进制的颜色转为rgb颜色
Python实现RGB和hex颜色转换(微软的RGB函数),HEX,互转,Microsoft
Python String zfill()
在线进制转换器
RGB颜色值与十六进制颜色码转换工具

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值