別再@官方啦,普天同慶加國旗,10行程式碼搞定
- 2019 年 10 月 7 日
- 筆記
國慶就要來了!今年是新中國成立70周年,大家的熱情都很高漲。這不,我今天一翻朋友圈,被齊刷刷地帶國旗的頭像給刷屏了!
不過還有些朋友不明就裡,還在不停地@微信官方,希望能自動給頭像加上一面國旗。然而等了半天,還是毫無反應……
其實不用那麼麻煩啦,咱們都是有 Python 的人,圖片拼接這種事,分分鐘就可以了。
話不多說,直接上程式碼:
# -*- coding: utf8 -*- import cv2 # 讀取頭像和國旗圖案 img_head = cv2.imread('head.jpg') img_flag = cv2.imread('flag.png') # 獲取頭像和國旗圖案寬度 w_head, h_head = img_head.shape[:2] w_flag, h_flag = img_flag.shape[:2] # 計算圖案縮放比例 scale = w_head / w_flag / 4 # 縮放圖案 img_flag = cv2.resize(img_flag, (0, 0), fx=scale, fy=scale) # 獲取縮放後新寬度 w_flag, h_flag = img_flag.shape[:2] # 按3個通道合併圖片 for c in range(0, 3): img_head[w_head - w_flag:, h_head - h_flag:, c] = img_flag[:, :, c] # 保存最終結果 cv2.imwrite('new_head.jpg', img_head)
這麼多,就OK了。
你只需要把這個程式碼copy到本地的一個py文件中並保存,然後在目錄下放上一張頭像圖片和國旗圖片,並把程式碼中的head.jpg和flag.png分別改成其文件名,然後用python執行此py文件即可。
效果展示:


(小知識:被遮蓋部分的二維碼依然不影響掃碼)
求人不如求己,掌握python就是節約生命!
實現基本思路:
1. 讀取進頭像和國旗的圖片
2. 根據頭像和國旗的長寬,我們計算下圖案需要縮放多少比例
3. 通過像素替換,將縮放後的國旗圖案添加到頭像圖片的右下角
我們用了 python-opencv 庫來處理影像,使用前需要安裝。
關於 opencv 和影像處理,還可以看看我們之前的文章:
最後,提前祝大家國慶快樂!祝福祖國繁榮昌盛!