大家好,我是阿亮。前段时间小米换Logo的事情,想必很多人都知道。
新Logo据说是请了日本平面设计大师原研哉花费了3年时间设计的,设计费高达200W!
这。。。就这?我想这钱也太好挣了吧~
最终呈现效果
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-1b63cb1296fe592e0395ac6289f183b9.png)
小米 “新” logo背后的数学
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-366d50e337c43074377d89a1206fe563.png)
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-da6ac3e8d518885c128b1bf056da2a9c.png)
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-c36090515a4fcdf7a90935c16cad6404.png)
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-21c7215acc5aa21b499007a815b7e5d4.png)
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-d9f7de5a42bb8bea9024c3b2c67cad6f.png)
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-6d1bcfb987b85ef49e83f4b6ae93fc04.png)
![天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制? 天秀!花费 200W 设计的新版 “小米” logo,看看用Python怎么绘制?](https://www.zkxjob.com/wp-content/uploads/2022/01/wxsync-2022-01-d2d60260d1bd80e5042082bd8c717739.png)
Python绘制新logo流程
① 绘图原理
-
① 利用 “超椭圆” 公式,绘制一个带填充色的椭圆; -
② 遍历 “旧logo” 上的像素值,保留白色 “米字” 处的像素值; -
③ 将带“米字” 的像素值,写入第一步的超椭圆中;
② 重要知识点的普及
-
① plt.fill():用于给图形填充颜色; -
② plt.axis():用于打开/取消坐标轴展示; -
③ plt.subplots_adjust()和plt.margins():用于去掉图形外侧多余的留白; -
④ image.getpixel():用于读取图片的像素值; -
⑤ image.putpixel():用于在指定坐标位置处,写入像素值;
③ 上代码
import numpy as np
from PIL import Image
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) # 设置保存图片的透明值
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')
参考链接:Python画出小米新logo的轮廓曲线
https://blog.csdn.net/frank_haha/article/details/115361238
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python操作Excel的5种方式01/30
- ♥ 30个Python常用极简代码,拿走就能用01/29
- ♥ 用 Python 把你的朋友变成表情包01/27
- ♥ 让Python运行SQL?Pandasql来搞定!02/06
- ♥ 用 Python 编写网页病毒,慎用02/03
- ♥ 大总结!Python进度条的那些事01/28
内容反馈