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