看看如何用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实现的数据结构与算法之双端队列详解
Apr 22 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
python爬虫基本知识
Mar 05 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
Python递归函数特点及原理解析
Mar 04 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
Django实现celery定时任务过程解析
Apr 21 Python
python要安装在哪个盘
Jun 15 Python
python集合能干吗
Jul 19 Python
提取视频中的音频 Python只需要三行代码!
May 10 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
php生成EXCEL的东东
2006/10/09 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
php MessagePack介绍
2013/10/06 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
跟我学Laravel之视图 & Response
2014/10/15 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
js的with语句使用方法
2007/09/21 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
商得四方公司面试题(gid+)
2014/04/30 面试题
文言文形式的学生求职信
2013/12/03 职场文书
教师旷工检讨书
2014/01/18 职场文书
人事专员的岗位职责
2014/03/01 职场文书
新法人代表任命书
2014/06/06 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
群众路线个人整改措施
2014/10/24 职场文书
公司年会开场白
2015/06/01 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript