文 | 野客

来源:Python 技术「ID: pythonall」

圣诞老人是西方神话里圣诞节前夜给小孩子赠送礼物的人物,在国内的圣诞节中,除了圣诞老人,苹果(平安果)也是一个特色元素,本文我们看一下如何使用 Python 给自己的微信头像加一个圣诞老人或苹果小图标。

实现

功能的实现我们用到的是 OpenCV 库,安装使用 pip install opencv-python 即可,实现的思路比较简单,就是将圣诞老人或苹果图片按一定比例缩放,之后再将其与头像进行合并即可,代码实现如下:

# 读取头像和圣诞老人图片img_head = cv2.imread('head.jpg')img_flag = cv2.imread('sc.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)

先以圣诞老人为例,我们看一下效果。

圣诞老人如下:

头像如下:

实现效果如下:

接着再看一下苹果的示例,这里我们使用 Python 自己画一个苹果,使用的 Python 库是大家比较熟悉的 turtle,代码实现如下:

turtle.setup(600, 600, 0, 0)turtle.up()turtle.goto(0, -200)turtle.down()# 先画一个圆,并填充为红色turtle.begin_fill()turtle.color("red")turtle.circle(radius=150)turtle.end_fill()# 画苹果把turtle.color("brown")turtle.pu()turtle.goto(-90, 0)turtle.pd()turtle.circle(180, 40)turtle.pu()turtle.seth(105)turtle.goto(-20, 20)turtle.pd()turtle.circle(180, 50)turtle.pd()# 画左边叶子turtle.begin_fill()turtle.color("green")turtle.circle(180, 50)turtle.seth(-30)turtle.circle(180, 55)turtle.end_fill()# 画右边叶子turtle.begin_fill()turtle.color("green")turtle.seth(0)turtle.circle(180, 50)turtle.seth(-180)turtle.circle(180, 50)turtle.end_fill()turtle.done()

效果如下:

最后,我们看一下合并后的头像效果:

总结

本文我们给大家演示了如何通 Python 给自己的头像加圣诞老人和苹果小图标,如果你喜欢这种风格的头像,可以自己加一下。

©著作权归作者所有:来自51CTO博客作者mob604756e8ada8的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 附解决方案,小程序获取的用户信息中昵称图然变成了“微信用户”,而
  2. 微信头像圣诞帽来啦,分享给 TA 戴帽子吧
  3. quick cocos2d-x 与android实现更换头像
  4. [置顶] android 自定义ListView实现元素前移后退的动画特效
  5. ColorMatrixColorFilter颜色过滤(离线用户的灰色头像处理)
  6. Android利用ContentProviderOperation添加联系人
  7. Android菜鸟笔记-获取摄像头像素值
  8. Android仿照钉钉的人名头像
  9. Android(安卓)相册回传 相机 (更换头像效果)

随机推荐

  1. android JNI C代码对sdcard中文件的操作
  2. Android: AIDL --- Android中的远程接口
  3. Android的进程,线程模型
  4. Android Activity的4种启动模式详解(示例)
  5. 在Android程序中使用全局变量
  6. Android实现上下滑动效果
  7. Android热点回顾第一期
  8. android远程控制(一)----发现驱动文件里代
  9. Android简介与开发环境搭建
  10. android 横竖屏转换