国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python 將 QQ 好友頭像生成祝福語(yǔ)的實(shí)現(xiàn)代碼

瀏覽:3日期:2022-07-26 15:50:01

本文我們來(lái)看一下如何使用 Python 將 QQ 好友頭像拼成“五一快樂(lè)”四個(gè)字。我們可以將整個(gè)實(shí)現(xiàn)過(guò)程分為兩步:爬取 QQ 好友頭像、利用好友頭像生成文字。

爬取頭像

爬取 QQ 好友頭像我們需要借助于 QQ 郵箱,首先我們從瀏覽器上登錄 QQ 郵箱,之后按 F12 鍵打開開發(fā)者工具并用鼠標(biāo)選中 Network 選項(xiàng),如下圖所示:

Python 將 QQ 好友頭像生成祝福語(yǔ)的實(shí)現(xiàn)代碼

再接著我們按 F5 鍵刷新一下網(wǎng)頁(yè),然后在 Filter 中輸入 laddr_lastlist ,如下圖所示:

Python 將 QQ 好友頭像生成祝福語(yǔ)的實(shí)現(xiàn)代碼

我們?cè)冱c(diǎn) Name 下的鏈接,點(diǎn)擊之后右側(cè)會(huì)出現(xiàn)一個(gè)窗口,我們用鼠標(biāo)選中 Response 項(xiàng),如下圖所示:

Python 將 QQ 好友頭像生成祝福語(yǔ)的實(shí)現(xiàn)代碼

我們最后將 Response 下面出現(xiàn)的內(nèi)容復(fù)制到 txt 文件。

獲取了爬取需要用到的東西后我們就可以開始實(shí)現(xiàn)爬取了,我們使用 requests 庫(kù)將頭像圖片爬取來(lái)下存到本地,代碼實(shí)現(xiàn)如下所示:

# 獲取頭像def get_head(): file = codecs.open(’qqfriends.txt’, ’rb’, ’utf-8’) s = file.read() pattern = re.compile(r’[email protected]’) # 正則表達(dá)式匹配所有的 qq 號(hào) all_mail = pattern.findall(s) # 用于存儲(chǔ)需要訪問(wèn)的鏈接 all_link = [] url = ’http://qlogo.store.qq.com/qzone/’ for mail in all_mail: qq = mail.replace(’@qq.com’, ’’) l = url + qq + ’/’ + qq + ’/100’ all_link.append(l) # 初始化下載圖片數(shù)量 i = 0 # 獲取朋友頭像數(shù)量 friends_count = len(all_link) print(’共{}個(gè)頭像’.format(friends_count)) # 遍歷鏈接,下載頭像 for link in all_link: i += 1 saveurl = ’head/’ + str(i) + ’.png’ print(’第 %d 個(gè)’ % i, end=’ ’) sava2img(link, saveurl) return True# 存儲(chǔ)圖片函數(shù),picurl 是圖片的 URL,saveurl 是本地存儲(chǔ)位置def sava2img(picurl, saveurl): try: start = time.time() response = requests.get(picurl, stream=True) # 下載圖片到本地 with open(saveurl, ’wb’) as file: file.write(response.content) print(’下載完成...’, end=’ ’) end = time.time() time_ = end - start print(’用時(shí): %.2f秒’ % (time_)) return True except: print(’出錯(cuò)了...’)

生成文字

現(xiàn)在 QQ 頭像圖片已經(jīng)有了,我們?cè)倏匆幌氯绾斡眠@些圖片生成文字,這里需要用到一下第三方庫(kù) PIL ,安裝使用 pip install Pillow ,我們需要先將 “五一快樂(lè)” 四個(gè)字轉(zhuǎn)化為漢字庫(kù)的點(diǎn)陣數(shù)據(jù)再使用,現(xiàn)在看一下具體實(shí)現(xiàn):

# 將字轉(zhuǎn)化為漢字庫(kù)的點(diǎn)陣數(shù)據(jù)def char2bit(textStr): KEYS = [0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01] target = [] global count count = 0 for x in range(len(textStr)): text = textStr[x] rect_list = [] * 16 for i in range(16): rect_list.append([] * 16) gb2312 = text.encode(’gb2312’) hex_str = binascii.b2a_hex(gb2312) result = str(hex_str, encoding=’utf-8’) area = eval(’0x’ + result[:2]) - 0xA0 index = eval(’0x’ + result[2:]) - 0xA0 offset = (94 * (area-1) + (index-1)) * 32 font_rect = None with open('HZK16', 'rb') as f: f.seek(offset) font_rect = f.read(32) for k in range(len(font_rect) // 2): row_list = rect_list[k] for j in range(2): for i in range(8): asc = font_rect[k * 2 + j] flag = asc & KEYS[i] row_list.append(flag) output = [] for row in rect_list: for i in row: if i: output.append(’1’) count+=1 else: output.append(’0’) target.append(’’.join(output)) return target# 生成圖片文字def head2char(workspace,folder,self,outlist): # 將工作路徑轉(zhuǎn)移至頭像文件夾 os.chdir(folder) # 獲取文件夾內(nèi)頭像列表 imgList = os.listdir(folder) # 獲取頭像圖片個(gè)數(shù) numImages = len(imgList) # 設(shè)置頭像裁剪后尺寸 eachSize = 100 # 變量 n 用于循環(huán)遍歷頭像圖片 n=0 # 變量 count 用于為最終生成的單字圖片編號(hào) count = 0 # 初始化顏色列表,用于背景著色 colorlist = [’#FFFACD’,’#F0FFFF’,’#BFEFFF’,’#b7facd’,’#ffe7cc’,’#fbccff’,’#d1ffb8’,’#febec0’,’#E0EEE0’] # index 用來(lái)改變不同字的背景顏色 index = 0 # 每個(gè) item 對(duì)應(yīng)不同字的點(diǎn)陣信息 for item in outlist: # 將工作路徑轉(zhuǎn)到頭像所在文件夾 os.chdir(folder) # 新建一個(gè)帶有背景色的畫布,16 * 16點(diǎn)陣,每個(gè)點(diǎn)處填充 2 * 2 張頭像圖片,故長(zhǎng)為 16 * 2 * 100 canvas = Image.new(’RGB’, (3200, 3200), colorlist[index]) # 新建一塊畫布 # index 變換,用于變換背景顏色 index = (index+1)%9 count += 1 # 每個(gè) 16 * 16 點(diǎn)陣中的點(diǎn),用四張 100 * 100 的頭像來(lái)填充 for i in range(16*16): # 點(diǎn)陣信息為 1,即代表此處要顯示頭像來(lái)組字 if item[i] == '1': # 循環(huán)讀取連續(xù)的四張頭像圖片 x1 = n % len(imgList) x2 = (n+1) % len(imgList) x3 = (n+2) % len(imgList) x4 = (n+3) % len(imgList) # 以下四組 try,將讀取到的四張頭像填充到畫板上對(duì)應(yīng)的一個(gè)點(diǎn)位置 # 點(diǎn)陣處左上角圖片 1/4 try: # 打開圖片 img = Image.open(imgList[x1]) except IOError: print('有1張圖片讀取失敗,已使用備用圖像替代') img = Image.open(self) finally: # 縮小圖片 img = img.resize((eachSize, eachSize), Image.ANTIALIAS) # 拼接圖片 canvas.paste(img, ((i % 16) * 2 * eachSize, (i // 16) * 2 * eachSize)) # 點(diǎn)陣處右上角圖片 2/4 try: img = Image.open(imgList[x2]) except IOError: print('有1張圖片讀取失敗,已使用備用圖像替代') img = Image.open(self) finally: img = img.resize((eachSize, eachSize), Image.ANTIALIAS) canvas.paste(img, (((i % 16) * 2 + 1) * eachSize, (i // 16) * 2 * eachSize)) # 點(diǎn)陣處左下角圖片 3/4 try: img = Image.open(imgList[x3]) except IOError: print('有1張圖片讀取失敗,已使用備用圖像替代') img = Image.open(self) finally: img = img.resize((eachSize, eachSize), Image.ANTIALIAS) canvas.paste(img, ((i % 16) * 2 * eachSize, ((i // 16) * 2 + 1 ) * eachSize)) # 點(diǎn)陣處右下角圖片 4/4 try: img = Image.open(imgList[x4]) except IOError: print('有1張圖片讀取失敗,已使用備用圖像替代') img = Image.open(self) finally: img = img.resize((eachSize, eachSize), Image.ANTIALIAS) canvas.paste(img, (((i % 16) * 2 + 1) * eachSize, ((i // 16) * 2 + 1) * eachSize)) #調(diào)整 n 以讀取后續(xù)圖片 n= (n+4) % len(imgList) os.chdir(workspace) # 創(chuàng)建文件夾用于存儲(chǔ)輸出結(jié)果 if not os.path.exists(’output’): os.mkdir(’output’) os.chdir(’output’) # 存儲(chǔ)將拼接后的圖片,quality 為圖片質(zhì)量,1 - 100,100 最高 canvas.save(’result%d.jpg’% count, quality=100)

看一下實(shí)現(xiàn)效果:

Python 將 QQ 好友頭像生成祝福語(yǔ)的實(shí)現(xiàn)代碼

到此這篇關(guān)于用 Python 將 QQ 好友頭像生成祝福語(yǔ)的文章就介紹到這了,更多相關(guān)python qq好友祝福語(yǔ)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: qq Python
相關(guān)文章:
主站蜘蛛池模板: 波多野结衣一区二区 | 国产伦精品一区二区三区无广告 | 亚洲天堂网站在线 | 天天爱天天做天天爽天天躁 | 久草视频福利在线观看 | 欧美三级超在线视频 | 五月色婷婷琪琪综合伊人 | 欧美成人综合在线 | 在线成人欧美 | 久草在线中文视频 | 日韩久久精品 | 国产成人免费不卡在线观看 | 国产一级片视频 | 欧美日本一区亚洲欧美一区 | 国产成人影院一区二区 | 在线亚洲欧美日韩 | 日韩一区三区 | 99久久精品久久久 | 97视频在线观看免费播放 | 日韩国产精品欧美一区二区 | 在线看免费观看韩国特黄一级 | 欧美日韩一区二区在线观看 | 日本成a人片在线观看网址 日本成年人视频网站 | 亚洲国产视频在线 | 国产人成亚洲第一网站在线播放 | 亚洲男人网 | 日韩欧美一区二区三区不卡在线 | 欧美成人性色生活片天天看 | 免费中文字幕在线 | 久久精品国产亚洲网站 | 手机在线精品视频 | 伊人婷婷色香五月综合缴激情 | 一级一毛片a级毛片欧美 | 国产精品久久久精品视频 | 九九色视频 | 三级视频网站在线观看播放 | 国产精品久久久久毛片真精品 | 德国女人一级毛片免费 | 国内偷自第一二三区 | 成人欧美一区二区三区黑人 | 久久精品国产只有精品2020 |