QQ群名片颜色代码的研究


起因是,某天逛群看到了加在群名片前可以改变颜色的神秘字符,类似于
<%ĀĀÒ>高级灰
<&ÿÒUÐ>紫色
第一种是带动态颜色效果的,第二种是普通的纯色。观察可以得出他们对应的格式是<%ĀĀ>和<&ÿ>随后听说这一串神秘字符组成跟字符编码和RGB有关,于是我用Python测试了一下,以纯色字符的紫色为例:

def str_to_num(color_str):
    for i in color_str:
        print(ord(i), end=' ')      # ord函数将字符转为对应ASCII编码
    print()

gray = 'ĀĀÒ'
str_to_num(gray)
# 输出 255 210 85 208

随后我去查RGB为(256, 7, 210)的颜色,发现确实是紫色,带入其他示例也都符合。因此我们可以大胆猜测这个神秘字符的确跟它的ASCII码编码值有关。
这样是不是意味着我们可以定制颜色
于是我们反过来,以#1F1E33(十六进制颜色码)举例:

def num_to_str(color, mode):
    for i in rgb_list:
        print(chr(i), end='')      # chr函数将ASCII码转为字符
    print()

camellia = (31, 30, 51)
num_to_str = (camellia)
# 输出 3

然后我用得到的字符拼接成神秘字符的格式,加在群名片前面,尽管有些字符是特殊字符无法显示,但颜色确实变成了对应的样子。因此我们可以得出之前猜测相应的结论了。
整理了一下写出下面完整的转换代码:

def ColorCode(RGB_num):
    RGB_str = ''
    for i in RGB_num:
        RGB_str += chr(i)
    return '<%ÿ' + RGB_str + '>'


print(ColorCode(tuple(map(int, input('输入RGB颜色码(空格间隔):').split(' ')))))

说了那么多其实就是无聊。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM