看看如何用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中ConfigParse模块的用法
Sep 29 Python
详解Python多线程
Nov 14 Python
Python线程指南详细介绍
Jan 05 Python
Python导入模块时遇到的错误分析
Aug 30 Python
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
通过实例解析Python文件操作实现步骤
Sep 21 Python
Django Form常用功能及代码示例
Oct 13 Python
Python中requests做接口测试的方法
May 30 Python
详解Python为什么不用设计模式
Jun 24 Python
实战Python爬虫爬取酷我音乐
Apr 11 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
PHP处理会话函数大总结
2015/08/05 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
Vue.js中的高级面试题及答案
2020/01/13 Javascript
详解Python中break语句的用法
2015/05/14 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Python中property属性实例解析
2018/02/10 Python
python中format()函数的简单使用教程
2018/03/14 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
Python 寻找局部最高点的实现
2019/12/05 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
浅析python 字典嵌套
2020/09/29 Python
印度购物网站:TATA CLiQ
2017/11/23 全球购物
Why do we need Unit test
2013/01/03 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
大学新生欢迎词
2014/01/10 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
书法大赛策划方案
2014/06/04 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
导游词之崇武古城
2019/10/07 职场文书