别再@官方啦,普天同庆加国旗,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 和图像处理,还可以看看我们之前的文章:
最后,提前祝大家国庆快乐!祝福祖国繁荣昌盛!