微信头像自动添加五星红旗,不用再@微信官方啦

废话不多说,直接贴代码

import cv2
import numpy as np
import itchat

itchat.auto_login()
friends = itchat.get_friends(update=True)
img_data = itchat.get_head_img(userName=friends[0]['UserName'])
img1 = cv2.imdecode(np.fromstring(img_data, np.uint8), cv2.COLOR_RGB2BGR)


#img1 = cv2.imread('C:/Users/G-CAN/headImages/photo.jpg')
img2 = cv2.imread('flag.png')
img1 = cv2.resize(img1,(950,950))
img2 = cv2.resize(img2,(270,250))
rows,cols,channels = img2.shape
rows1,cols1,channels1 = img1.shape
roi = img1[rows1-rows:, cols1-cols-10:-10 ]

img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 240, 255, cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)

img1_bg = cv2.bitwise_and(roi,roi,mask = mask)

img2_fg = cv2.bitwise_and(img2,img2,mask = mask_inv)

dst = cv2.add(img1_bg,img2_fg)
img1[rows1-rows:, cols1-cols-10:-10 ] = dst

cv2.imshow('res',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("my_new_photo.jpg", img1)

代码主要通过itchat登陆微信,获取微信个人头像后,使用opencv进行位图的叠加,逻辑比较简单。
下面附加国旗图片和效果图
国旗图片
结果图

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章