看看如何用Python绘制小米新版天价logo


Posted in Python onApril 20, 2021

最终呈现效果

哈哈,咋们在讲述之前,首先看看最终呈现的效果吧,整体来说还是很不错的。

看看如何用Python绘制小米新版天价logo

小米 “新” logo背后的数学

前段时间,小米公司发布了一条微博,引发了热议,原来小米换了新logo了。

看看如何用Python绘制小米新版天价logo

很多人,都觉得雷总被骗了。说实话,我当时猛的一看,也是很蒙蔽,可能咋们不懂美学,不懂新logo背后蕴藏的文化底蕴吧!

看看如何用Python绘制小米新版天价logo

但是,原设计者原研哉说到:最新设计的小米logo,融入了东方哲学的思考,从而提出了一个具有「超椭圆」数学之美的小米新 LOGO,同时还增加了黑色和科技银来作为小米品牌色彩的新搭档。

原研哉还说到:在验证的过程中,用到了一个数学公式。

看看如何用Python绘制小米新版天价logo

从上面的公式可以看到,这里有一个n,因此可以知道:上述公式能够绘制出n种类型的超椭圆。而设计者最终推荐使用n=3这一形状。

看看如何用Python绘制小米新版天价logo

看看如何用Python绘制小米新版天价logo

Python绘制新logo流程

① 绘图原理
在正式绘图之前,我们先来讲述一下Python绘制新logo的“绘图原理”。掌握了原理后,剩下的问题就交给代码吧。

  • ① 利用 “超椭圆” 公式,绘制一个带填充色的椭圆;
  • ② 遍历 “旧logo” 上的像素值,保留白色 “米字” 处的像素值;
  • ③ 将带“米字” 的像素值,写入第一步的超椭圆中;

② 重要知识点的普及
关于整个代码,有几个函数需要给大家提一下,为了大家更够很快学习。但是不会讲解的很详细,大家可以根据说明,自行下去查阅相关资料。

  • ① plt.fill():用于给图形填充颜色;
  • ② plt.axis():用于打开/取消坐标轴展示;
  • ③ plt.subplots_adjust()和plt.margins():用于去掉图形外侧多余的留白;
  • ④ image.getpixel():用于读取图片的像素值;
  • ⑤ image.putpixel():用于在指定坐标位置处,写入像素值;

③ 上代码
首先我们先导入相关库:

import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

接着,利用上面 提到的公式,绘制一个不留白的n=3的超椭圆。

x = np.linspace(-1, 1, 1000)
y = + pow(1-abs(pow(x, 3)), 1/3) # 注意公式的写法
z = - pow(1-abs(pow(x, 3)), 1/3) # 注意公式的写法
plt.figure(figsize=(12, 12)) # 画布大小

plt.plot(x, y, color=(255/255, 103/255, 0))
plt.plot(x, z, color=(255/255, 103/255, 0))
plt.fill(x, y, color=(255/255, 103/255, 0)) # 填充颜色
plt.fill(x, z, color=(255/255, 103/255, 0)) # 填充颜色
plt.axis('off') # 不显示坐标轴
plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
plt.margins(0, 0)
plt.savefig('fill.png', transparent=True, dpi=100) # 设置保存图片的透明值

然后,遍历旧logo的像素值,保留 “米字” 那一块儿。将该像素值,写入上面的 “fill.png” 中。有一点需要注意的是:白色的rgb值是255, 255, 255。

image_1 = Image.open('old.png')
image_2 = Image.open('fill.png')

w, h = image_1.size

for i in range(w):
    for j in range(h):
        data = image_1.getpixel((i, j))
        if data == (255,)*4:
            image_2.putpixel((i, j), (255,)*4)

image_2.save('new.png')

获取资源

以上图片和代码,均已打包,大家可以自由获取哦!

链接:https://pan.baidu.com/s/1K1Kjmwnsj8NFtZRqWbZW6g
提取码:deoy

以上就是看看如何用Python绘制小米新版天价logo的详细内容,更多关于python绘制小米logo的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python操作列表的常用方法分享
Feb 13 Python
Python 多线程的实例详解
Sep 07 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
django用户登录和注销的实现方法
Jul 16 Python
python 返回列表中某个值的索引方法
Nov 07 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
学点简单的Django之第一个Django程序的实现
Feb 24 Python
python spilt()分隔字符串的实现示例
May 21 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
11款基于Javascript的文件管理器
2009/10/25 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
python utc datetime转换为时间戳的方法
2019/01/15 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
师范生教师实习自我鉴定
2013/09/27 职场文书
大一学生假期实习的自我评价
2013/10/12 职场文书
年度考核自我鉴定
2013/11/09 职场文书
传媒专业推荐信范文
2013/11/23 职场文书
关于人生的感言
2014/01/17 职场文书
大学生党员承诺书
2014/05/20 职场文书
公司承诺书怎么写
2014/05/24 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
长江三峡导游词
2015/01/31 职场文书
首席执行官观后感
2015/06/03 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers