给头像加国旗,喜迎国庆,别再 @微信官方了

最近的朋友圈是不是又被莫名其妙的刷屏的?
别问,问就是 ~ 是的!!!同一个世界,同一个朋友圈。
像去年圣诞一样,大家 @微信官方要圣诞帽,今年 @微信官方要国旗,甚至广大圈友提出更加过分的要求,要女朋友的,要暴富的,要头发的….
给头像加国旗,喜迎国庆,别再 @微信官方了

给头像加国旗,喜迎国庆,别再 @微信官方了

嘻嘻,虽然不能满足你们这些要求,但是给头像加一面国旗还是小意思的啦,万能的 Python 就能通过 10 多行代码搞定

废话少说,代码奉上:
给头像加国旗,喜迎国庆,别再 @微信官方了

# -*- coding: utf8 -*-
import cv2
# 读取头像和国旗图案
img_head = cv2.imread('head.jpg')
img_flag = cv2.imread('flag.jpg')
# 获取头像和国旗图案宽度
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)

你需要做的是将上面的代码复制到你创建的 py 文件里,并在同一目录下放入你头像的图片和国旗的图片,并将头像图片命名为 head.jpg,将国旗图片命名为 flag.jpg(当然了,除了国旗,你也可以拼接任何图片),最后运行就生成了 new_head.jpg 也就是加了国旗的图片了

国旗图片:
给头像加国旗,喜迎国庆,别再 @微信官方了

效果如下:

给头像加国旗,喜迎国庆,别再 @微信官方了
给头像加国旗,喜迎国庆,别再 @微信官方了

实现基本思路:

  1. 读取进头像和国旗的图片

  2. 根据头像和国旗的长宽,我们计算下图案需要缩放多少比例

  3. 通过像素替换,将缩放后的国旗图案添加到头像图片的右下角

对了,这个需要通过 python-opencv 库来处理图像,大家可以用 pycharm 导入,或者直接 pip install python-opencv

最后希望祖国繁荣昌盛,国泰民安!