看看如何用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实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
Python之指数与E记法的区别详解
Nov 21 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
Python : turtle色彩控制实例详解
Jan 19 Python
django-csrf使用和禁用方式
Mar 13 Python
Python中实现输入一个整数的案例
May 03 Python
导致python中import错误的原因是什么
Jul 01 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
python调用摄像头的示例代码
Sep 28 Python
用pip给python安装matplotlib库的详细教程
Feb 24 Python
通过Python把学姐照片做成拼图游戏
Feb 15 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
Stop SQL Server
2007/06/21 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
js使用心得分享
2015/01/13 Javascript
jQuery.each使用详解
2015/07/07 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python编写打字训练小程序
2019/09/26 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
控制工程专业个人求职信
2013/09/25 职场文书
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
酒店管理专业毕业生推荐信
2013/11/10 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
网络事业创业计划书范文
2014/01/09 职场文书
水浒传读书笔记
2015/06/25 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫