有一句至理名言说得好“Python除了不会生孩子,什么都能干”(当然这句话还有很多版本,比如MATLAB、Excel......),而今天小编就再次证明一下这个观点——用Python来设计一个微信logo。

很多人学习python,不知道从何学起。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:101677771

01

整体的画布设计

微信恐怕是我们最常用的手机软件了,其logo也经历了多次变化,这次我们就用最经典的微信绿色图标来作为例子,给大家展示一下如何用Python来进行设计。其图例如下:

图1. 微信经典绿色logo

这里小编的操作系统是Windows7,编程软件为Anaconda 2019.10版,所有库均为Anaconda自带,这次主要使用matplotlib绘图库来进行绘制。

首先还是导入各种需要的库。

接下来因为我们要在matplotlib的画布中进行设计,所以要进行相关的设置。

比如颜色,然后要去掉x,y轴的设置,把画布背景变为绿色等等。

这里的变量color就是微信logo的绿色主色调,我们把画布设置成一个正方形,x轴和y轴的坐标范围都设为0-40,这个数字可以随意设定,主要是为了在画图时找准图形的坐标,同时去掉x轴和y轴的坐标,然后再设置一下画布的颜色,就是微信的绿色,最后的变量patches用于存放一系列图形,后面会用到。

02

分析微信的logo

接下来我们就分析一下微信logo的组成。实际上我们可以把微信的主体logo看成三大部分:

第一部分是:两个椭圆,这两个椭圆一大一小(左边的更大一些),叠加在一起,就是图1中的主要白色的部分;

第二部分是:四个小圆圈,分别是这两个椭圆的那两对小眼睛,左边的小眼睛要稍微大一些,右边的稍微小一些;

最后是:每个椭圆的箭头,左边椭圆的箭头朝向左侧,右边椭圆的箭头朝向右侧。分析完我们就按照这三部分的顺序依次来绘制。

1).首先是两个椭圆的代码

es1 = Ellipse([15,24], width=21, height=18, facecolor='white', zorder=1)

es2 = Ellipse([26,16], width=18, height=15, facecolor='white', linewidth=5, edgecolor=color, zorder=1)

es1就是左侧的大椭圆,es2是小椭圆,这里es2要设置一下边框线的宽度和边框线的颜色,这样才能产生叠加效果,zorder是图层顺序,数字越大图层越靠上,这里es1和es2的zorder都设置为1,但因为es2后绘制,所以会产生es2叠加在es1之上的效果,如下图所示。

图2. 两个椭圆的效果图

2).绘制小眼睛

在这里我们为了能让每部分的效果展示出来,需要加上下面三行代码。这三行代码实际上是放在所有代码之后,所有代码是连在一起的。接下来绘制四个小眼睛,代码如下。

每对小眼睛都要关于各自所在椭圆的中线对称,左边的小眼睛要大一些,右边的小一些,把所有小眼睛的颜色都设置为绿色。效果如下图。

图3. 四个小圆圈的效果图

3).最后就是绘制两个箭头,代码如下

绘制这两个箭头可以说是最大的难点,但其绘制方法有多种,比如可以绘制一个三角形,用三角形的一个角来充当这个箭头,也可以用matplotlib的annotate方法来绘制一个箭头,然后进行填充,这两种方法都可用。

但要设置多个坐标同时还难以控制其形状,所以笔者就用了另外一种方法——用扇形的中心角来充当箭头。这种方法的好处是只需要设置一个顶点坐标,同时容易控制中心角的角度,最后的成图效果如下。

图4. 微信logo成图

一些人在这里可能没太看明白这两个箭头是怎么画的,那么我们把其他所有图形去掉,只画两个扇形,效果如下。从下图我们可以看到扇形的中心角充当了箭头,而上部的弧形部分和两个椭圆重叠在了一起,因为颜色相同,所以就被隐去了,看不出来了。

图5. 两个扇形的效果图

03

大功告成

最后我们再放上微信另外一个版本logo的图片,这和上面的设计方法完全一样,只是要把两个椭圆和各自的扇形的颜色改变一下,左边的椭圆和扇形的颜色代码为“#A1CC3F”,右边的颜色代码为“#E9E9E9”,同时把右边椭圆的边线去掉,把四个小眼睛设置为黑色,最后把画布背景设置为白色就OK了。

图6. 微信另一版本logo成图效果

从这个例子中我们可以看到matplotlib在应对简单的图形绘制时还是非常的得心应手,简单的数行代码就完成了一个微信图标的设计。都说Python不能生孩子,下次研究一下怎么让Python生个娃出来,哈哈 。

整个的代码量非常小,非常适合小白上手,看千遍说万遍,不如自己动手实践一遍。

内容来源于网络如有侵权请私信删除

python微信图标制作_30行Python代码来绘制一个微信图标相关推荐

  1. 30行Python代码来绘制一个微信图标

    有一句至理名言说得好"Python除了不会生孩子,什么都能干"(当然这句话还有很多版本,比如MATLAB.Excel......),而今天小编就再次证明一下这个观点--用Pytho ...

  2. python自动化--如何用10行Python代码调一个闹钟 #电脑调闹钟

    python自动化--如何用10行Python代码写一个闹钟 前言: 文末彩蛋--轻松一刻 更多关于Python的知识请加关注哟~~.若需联系博主请私信或者加博主联系方式:       QQ:1542 ...

  3. python读取文件第n行-Python读取文件后n行的代码示例

    这篇文章主要介绍了Python实现读取文件最后n行的方法,涉及Python针对文件的读取.遍历与运算相关操作技巧,需要的朋友可以参考下# -*- coding:utf8-*- import os im ...

  4. ➢ 微信公众号运营教程(一)申请一个微信公众号

    ➢ 微信公众号运营教程(一)申请一个微信公众号 我们要创建一个个人公众号,首先需要申请一个公众号. 下面详细说说申请过程. 注册地址:https://mp.weixin.qq.com/ 或者直接搜索: ...

  5. 微信小程序是什么?如何快速搭建一个微信小程序?

    目录 一.微信小程序是什么 二.安全管理 三.微信小程序的功能 四.快速开发一个微信小程序APP 1.集成即构实时音视频SDK 2.初始化SDK引擎 3.创建房间与登录房间 4.房主创建房间 5.推流 ...

  6. python社区微信群_30行Python代码,打造一个简单的微信群聊助手,简单方便

    大家都知道,最近代码君迷上了Python,一直在研究这门语言,还是那句话,人生苦短,我学Python,今天代码君要教大家一个黑科技,30行代码实现自己定制的微信群聊助手,这个助手有什么用呐,就是用来活 ...

  7. python程序30行_30行Python代码,打造一个简单的微信群聊助手,简单方便

    大家都知道,最近代码君迷上了Python,一直在研究这门语言,还是那句话,人生苦短,我学Python,今天代码君要教大家一个黑科技,30行代码实现自己定制的微信群聊助手,这个助手有什么用呐,就是用来活 ...

  8. 30行Python代码,打造一个微信群聊助手~

    大家都知道,最近代码君迷上了Python,一直在研究这门语言,还是那句话,人生苦短,我学Python,今天代码君要教大家一个黑科技,30行代码实现自己定制的微信群聊助手,这个助手有什么用呐,就是用来活 ...

  9. php微信撤回消息,78行Python代码实现现微信撤回消息功能

    Python曾经对我说:"时日不多,赶紧用Python".于是看到了一个基于python的微信开源库:itchat,玩了一天,做了一个程序,把私聊撤回的信息可以收集起来并发送到个人 ...

最新文章

  1. 关于linux下用户不能使用tab补全处理
  2. 解读谷歌事件中的失语症现象
  3. sklearn自学指南(part19)--LDA和QDA
  4. AUTOSAR从入门到精通100讲(九十八)-CANoe之Panel Designer的使用
  5. solr的一些查询语法
  6. bp 神经网络 优点 不足_深度学习之BP神经网络--Stata和R同步实现(附Stata数据和代码)
  7. 第二节:ES6新增了let关键字,干嘛用的?
  8. mamp 配置php,Mac OSX下使用MAMP安装配置PHP开发环境
  9. bzoj3533 [Sdoi2014]向量集 可持久化凸包+二分
  10. 经典算法题每日演练——第二十题 三元组
  11. 如何在Windows环境搭建Object C开发环境
  12. 计算机组成原理bzc指令,计算机组成原理课程设计-09级.ppt
  13. android手表密码忘了咋办,moto 360手表通过Android 5.0系统自动解锁手机教程
  14. 怎样提高数据库查询效率
  15. SCI论文配色-matplotlib分类柱状图绘制
  16. 三、Snapman多人协作电子表格之——软件的基本功能
  17. CS系统设计与开发——人事档案管理系统的设计与实现
  18. 摩托车竞速游戏:Road Redemption公路救赎mac中文版
  19. 排序算法,对内存小数据量大的数据排序(一)
  20. 深入解析数据压缩算法

热门文章

  1. 【遥感数字图像处理】实验:遥感影像分类(监督、非监督分类)完整流程(Erdas版)
  2. 【技巧】Vivado 仿真器simulation显示模拟波形图(非数字波形)
  3. (翻译)完成模式(Completion)
  4. 最好的蓝牙驱动-BlueSoleil千月蓝牙破解版10.2.497.0-2018\10\9更新下,支持64位系统
  5. linux清空网络错误包,centos – 删除包时PREUN scriptlet中的yum错误
  6. python Object Oriented Programming
  7. 合泰lcd的c语言程序,合泰单片机HT66F70A LCD12864液晶屏驱动 汇编和c语言都有
  8. 2021年煤矿采煤机(掘进机)操作考试题及煤矿采煤机(掘进机)操作报名考试
  9. 100款复古风格LR调色预设
  10. 装机员 Ghost Win7 Sp1 32位装机11月版