小言_互联网的博客

用 Python 给微信头像加个圣诞老人(平安果)小图标

429人阅读  评论(0)

文 | 野客

来源:Python 技术「ID: pythonall」

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

实现

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


   
  1. # 读取头像和圣诞老人图片
  2. img_head = cv2.imread( 'head.jpg')
  3. img_flag = cv2.imread( 'sc.jpg')
  4. # 获取头像和圣诞老人图片宽度
  5. w_head, h_head = img_head.shape[: 2]
  6. w_flag, h_flag = img_flag.shape[: 2]
  7. # 计算图案缩放比例
  8. scale = w_head / w_flag /  4
  9. # 缩放图案
  10. img_flag = cv2.resize(img_flag, ( 00), fx=scale, fy=scale)
  11. # 获取缩放后新宽度
  12. w_flag, h_flag = img_flag.shape[: 2]
  13. # 按  3 个通道合并图片
  14. for c in  range( 03):
  15.     img_head[w_head - w_flag:, h_head - h_flag:, c] = img_flag[:, :, c]
  16. # 保存最终结果
  17. cv2.imwrite( 'new_head.jpg', img_head)

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

圣诞老人如下:

头像如下:

实现效果如下:

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


   
  1. turtle.setup( 60060000)
  2. turtle.up()
  3. turtle. goto( 0-200)
  4. turtle.down()
  5. # 先画一个圆,并填充为红色
  6. turtle.begin_fill()
  7. turtle.color( "red")
  8. turtle.circle(radius= 150)
  9. turtle.end_fill()
  10. # 画苹果把
  11. turtle.color( "brown")
  12. turtle.pu()
  13. turtle. goto( -900)
  14. turtle.pd()
  15. turtle.circle( 18040)
  16. turtle.pu()
  17. turtle.seth( 105)
  18. turtle. goto( -2020)
  19. turtle.pd()
  20. turtle.circle( 18050)
  21. turtle.pd()
  22. # 画左边叶子
  23. turtle.begin_fill()
  24. turtle.color( "green")
  25. turtle.circle( 18050)
  26. turtle.seth( -30)
  27. turtle.circle( 18055)
  28. turtle.end_fill()
  29. # 画右边叶子
  30. turtle.begin_fill()
  31. turtle.color( "green")
  32. turtle.seth( 0)
  33. turtle.circle( 18050)
  34. turtle.seth( -180)
  35. turtle.circle( 18050)
  36. turtle.end_fill()
  37. turtle.done()

效果如下:

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

总结

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

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式

识别文末二维码,回复:201224


转载:https://blog.csdn.net/weixin_48923393/article/details/111659513
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场