黑马程序员技术交流社区

标题: 【西安校区】 通过Python给头像加国旗,10多行代码搞定,... [打印本页]

作者: 逆风TO    时间: 2019-9-26 10:09
标题: 【西安校区】 通过Python给头像加国旗,10多行代码搞定,...
今天上午又被莫名其妙的刷屏的,像去年圣诞一样,大家@微信官方要圣诞帽,今年@微信官方要国旗,甚至广大圈友提出更加过分的要求,要女朋友的,要暴富的,要头发的....






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

废话少说,代码奉上:

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

效果如下:



实现基本思路:

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

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

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

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

感谢 Crossin大佬提供的代码!

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







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2