看看如何用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模拟鼠标拖动操作的方法
Mar 11 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
浅谈Python的异常处理
Jun 19 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
python学生信息管理系统
Mar 13 Python
python中format()函数的简单使用教程
Mar 14 Python
python实现对文件中图片生成带标签的txt文件方法
Apr 27 Python
Python根据服务获取端口号的方法
Sep 25 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 Python
浅析Python中的随机采样和概率分布
Dec 06 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
php数组转成json格式的方法
2015/03/09 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
类似框架的js代码
2006/11/09 Javascript
一个对于js this关键字的问题
2007/01/09 Javascript
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
python 字典(dict)按键和值排序
2016/06/28 Python
python随机取list中的元素方法
2018/04/08 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
Django 解决由save方法引发的错误
2020/05/21 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
高中学生干部学习的自我评价
2014/02/21 职场文书
矿泉水广告词
2014/03/20 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
客户答谢会活动方案
2014/08/31 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
爱心募捐感谢信
2015/01/22 职场文书
解约证明模板
2015/06/19 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python