电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python 將 QQ 好友頭像生成祝福語的實現代碼

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

本文我們來看一下如何使用 Python 將 QQ 好友頭像拼成“五一快樂”四個字。我們可以將整個實現過程分為兩步:爬取 QQ 好友頭像、利用好友頭像生成文字。

爬取頭像

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

Python 將 QQ 好友頭像生成祝福語的實現代碼

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

Python 將 QQ 好友頭像生成祝福語的實現代碼

我們再點 Name 下的鏈接,點擊之后右側會出現一個窗口,我們用鼠標選中 Response 項,如下圖所示:

Python 將 QQ 好友頭像生成祝福語的實現代碼

我們最后將 Response 下面出現的內容復制到 txt 文件。

獲取了爬取需要用到的東西后我們就可以開始實現爬取了,我們使用 requests 庫將頭像圖片爬取來下存到本地,代碼實現如下所示:

# 獲取頭像def get_head(): file = codecs.open(’qqfriends.txt’, ’rb’, ’utf-8’) s = file.read() pattern = re.compile(r’d+@qq.com’) # 正則表達式匹配所有的 qq 號 all_mail = pattern.findall(s) # 用于存儲需要訪問的鏈接 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) # 初始化下載圖片數量 i = 0 # 獲取朋友頭像數量 friends_count = len(all_link) print(’共{}個頭像’.format(friends_count)) # 遍歷鏈接,下載頭像 for link in all_link: i += 1 saveurl = ’head/’ + str(i) + ’.png’ print(’第 %d 個’ % i, end=’ ’) sava2img(link, saveurl) return True# 存儲圖片函數,picurl 是圖片的 URL,saveurl 是本地存儲位置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(’用時: %.2f秒’ % (time_)) return True except: print(’出錯了...’)

生成文字

現在 QQ 頭像圖片已經有了,我們再看一下如何用這些圖片生成文字,這里需要用到一下第三方庫 PIL ,安裝使用 pip install Pillow ,我們需要先將 “五一快樂” 四個字轉化為漢字庫的點陣數據再使用,現在看一下具體實現:

# 將字轉化為漢字庫的點陣數據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): # 將工作路徑轉移至頭像文件夾 os.chdir(folder) # 獲取文件夾內頭像列表 imgList = os.listdir(folder) # 獲取頭像圖片個數 numImages = len(imgList) # 設置頭像裁剪后尺寸 eachSize = 100 # 變量 n 用于循環遍歷頭像圖片 n=0 # 變量 count 用于為最終生成的單字圖片編號 count = 0 # 初始化顏色列表,用于背景著色 colorlist = [’#FFFACD’,’#F0FFFF’,’#BFEFFF’,’#b7facd’,’#ffe7cc’,’#fbccff’,’#d1ffb8’,’#febec0’,’#E0EEE0’] # index 用來改變不同字的背景顏色 index = 0 # 每個 item 對應不同字的點陣信息 for item in outlist: # 將工作路徑轉到頭像所在文件夾 os.chdir(folder) # 新建一個帶有背景色的畫布,16 * 16點陣,每個點處填充 2 * 2 張頭像圖片,故長為 16 * 2 * 100 canvas = Image.new(’RGB’, (3200, 3200), colorlist[index]) # 新建一塊畫布 # index 變換,用于變換背景顏色 index = (index+1)%9 count += 1 # 每個 16 * 16 點陣中的點,用四張 100 * 100 的頭像來填充 for i in range(16*16): # 點陣信息為 1,即代表此處要顯示頭像來組字 if item[i] == '1': # 循環讀取連續的四張頭像圖片 x1 = n % len(imgList) x2 = (n+1) % len(imgList) x3 = (n+2) % len(imgList) x4 = (n+3) % len(imgList) # 以下四組 try,將讀取到的四張頭像填充到畫板上對應的一個點位置 # 點陣處左上角圖片 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)) # 點陣處右上角圖片 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)) # 點陣處左下角圖片 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)) # 點陣處右下角圖片 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)) #調整 n 以讀取后續圖片 n= (n+4) % len(imgList) os.chdir(workspace) # 創建文件夾用于存儲輸出結果 if not os.path.exists(’output’): os.mkdir(’output’) os.chdir(’output’) # 存儲將拼接后的圖片,quality 為圖片質量,1 - 100,100 最高 canvas.save(’result%d.jpg’% count, quality=100)

看一下實現效果:

Python 將 QQ 好友頭像生成祝福語的實現代碼

到此這篇關于用 Python 將 QQ 好友頭像生成祝福語的文章就介紹到這了,更多相關python qq好友祝福語內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: qq Python
相關文章:
主站蜘蛛池模板: 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 领先的大模型技术与应用公司-中关村科金 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 打造全球沸石生态圈 - 国投盛世 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | Maneurop/美优乐压缩机,活塞压缩机,型号规格,技术参数,尺寸图片,价格经销商 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 空气弹簧|橡胶气囊|橡胶空气弹簧-上海松夏减震器有限公司 | 电加热导热油炉-空气加热器-导热油加热器-翅片电加热管-科安达机械 | 车载加油机品牌_ 柴油加油机厂家| 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 大巴租车平台承接包车,通勤班车,巴士租赁业务 - 鸿鸣巴士 | 板框压滤机-隔膜压滤机配件生产厂家-陕西华星佳洋装备制造有限公司 | 空压机网_《压缩机》杂志 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 培训无忧网-教育培训咨询招生第三方平台 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 石家庄小程序开发_小程序开发公司_APP开发_网站制作-石家庄乘航网络科技有限公司 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 |