最近Switch上的《动物森友会》可谓是炙手可热,它几乎算是任天堂版的《模拟人生》了,它的最新游戏《集合啦!动物森友会》(以下称“动森”)在发售后,取得了不错的媒体评价和首发成绩。

动森火起来有大部分原因是因为它的细节做的很到位,例如最受好评的:玩家可以自己手工DIY。(说实话,如果不是动森,我的NS可能还在积灰~)

我们可以先看看别人的DIY:

《火影》

《银魂》

《神奇宝贝》

感觉都做的很棒唉!其实做这些DIY主要就是如何设计这些卡通图片,如果大家不怎么会设计,那下面我就来带着大家使用Python来生成DIY设计图!

首先我们准备一张图片:

下面我们就来对这个图片进行处理,我们主要使用matplotlib来处理图片,使图片马赛克化。

首先安装对应的模块:

pip install numpy
pip install matplotlib

附上代码:

import numpy as np
from matplotlib import pyplot as plt
# jupyter环境
%matplotlib inline
# 指定图片大小
plt.figure(figsize=(40, 40))
# 读取图片
pic = plt.imread('./349.png')
# 指定马赛克程度,数字越大越模糊
pic = pic[::15, ::15]
# 设置坐标轴,方便对照取色
plt.grid(axis="y")
plt.grid(axis="x")
# 设置坐标轴取值0-41是范围,0.5是单位长(精度)
plt.xticks(np.arange(0, 41, 0.5))
plt.yticks(np.arange(0, 41, 0.5))
# 坐标显示,起始值颠倒对图片有旋转效果
plt.xlim(0,40)
plt.ylim(40,0)
plt.imshow(pic)
#保存图片
plt.savefig("鬼斯.png")

(代码中具体的数据大家都可以继续调整,可能我的数据也不是最优的,例如鬼斯的眼睛可能还需要自己在手工作图的时候加上)

效果:

再来换一张小猪佩奇试试:

主要代码我都写上注释了,这边主要说一下,imread方法读出的对象是一个numpy的数组:

[[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
...
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]] [[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
...
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
...
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]] [[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
...
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]

我们马赛克的过程其实就是将数组压缩的一个过程,这个其实和list的切片的步长(list[::x])是一个道理。

最后,在动森上作图的时候,有一点需要注意一下,动森面板的马赛克格子密度比较低,我们取色的时候可以按照四个格子取一个色(毕竟都是眼球取色,也没有RGB取色,我是将就凑合着取了,还有就是动森中一张图片最多只能使用 16 种颜色,大家选择图片的时候也要注意一下,尽量选择和我差不多的一些无背景的图片。马赛克图片应用在平面和衣服上的效果可能会有差距(毕竟衣服是曲面的),所以边缘线可能还需要大家自己酌情调整一下。

如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?

说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。

以上这些教程小编已经为大家打包准备好了,希望对正在学习的你有所帮助!

获取方式,私信小编 “ 资料 ”,即可免费获取哦!

Python带你做个愉快的"动森"玩家! (超简单代码)的更多相关文章

  1. python 3编写贴吧图片下载软件(超简单)

    业余时间初学者作品,大佬勿喷,代码都很简单. py文件打包成exe教程:python3.7 打包成exe程序, 本程序体验下载地址:python编译的贴吧图片下载工具 先上效果图 启动后是这样的: 按 ...

  2. Python print输出重定向到文件和屏幕,超简单

    import sys import os class Logger(object): def __init__(self, filename="log.txt"): self.te ...

  3. Python带你来一次说走就走的环球旅行

      image 1.目 标 场 景 十一长假,相信大部分的朋友这会应该是在全国各地浪或者是在浪的路上,朋友圈成为你们表演的场所. 当然,也有一小戳朋友是选择家里蹲,你们是否感觉到无聊?是否想出去浪,参 ...

  4. 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)

    众所周知程序员得靠技术吃饭,但是真的光靠技术就够了吗?Teacher苍,一位德艺双馨的艺术家,论技术她自然是炉火纯青,我觉得她桃李遍天下的原因不仅限于些,试想如果Teacher苍长得跟凤姐一样再带点乡 ...

  5. 让 Python 带你进入开源的世界——Git 从入门到与他人协作开发

    让 Python 带你进入开源的世界--Git 从入门到与他人协作开发 我认为开源社区中有很多优秀的资源,并且可以帮助进阶中的程序员提高编程能力和水平.所以,我发起了<HelloGitHub&g ...

  6. [TPYBoard - Micropython之会python就能做硬件 1] 运行第一个脚本——点亮LED

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 一.TPYBoard V102开发板 TPYBoard V102 ...

  7. [TPYBoard - Micropython之会python就能做硬件 开篇]会python就能做硬件!

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 在写这套教程之前,首先感觉山东萝卜电子科技有限公司(turnip ...

  8. python使用tkinter做界面之颜色

    python使用tkinter做界面之颜色       from tkinter import *colors = '''#FFB6C1 LightPink 浅粉红#FFC0CB Pink 粉红#DC ...

  9. 让Python带你看一场唯美的横飘雪!

    “北国风光,千里冰封,万里雪飘”,这句诗描写了一句美丽肃静的风光图,恰逢昨天笔者这边也下了一场比较大的雪,要不今天就用Python带大家也来领略一次美丽的雪景? 开发环境 版本:Python3.6 系 ...

随机推荐

  1. 玩转控件:封装Dev的SearchLookupEdit

    鸣谢 随着前面几个章节对控件封装与扩展的分享,不少小伙伴儿们在作者公众号上反馈,并联系作者,表示通过这些系列和源码能学到不少细节上的东西,并运用到了自己的实际项目当中,也有不少伙伴儿反馈更好更优的处理 ...

  2. 1066 Root of AVL Tree (25分)(AVL树的实现)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  3. FastJson反序列化和构造函数之间的一点小秘密

    各位看官大家下午好,FastJson想必大家都很熟悉了,很常见的Json序列化工具.今天在下要和大家分享一波FastJson反序列化和构造函数之间的一点小秘密. 下面先进入大家都深恶痛绝的做题环节.哈 ...

  4. 【PHP】数组

    一.生活中的数组: a)    教室的座位:第一天来教室的时候,每个座位上都有自己的一个名字,我们可以通过这个名字快速定位到自己的座位在什么位置! b)    电影院的座位:我们买了电影票之后,能够通 ...

  5. json文件操作

    1.把字典或list转换成字符串方法 json.dumps() 2.把字符串转换成字典方法 json.loads() 3.indent 存储文件时每行加缩进数 4.ensere_asci 文件中有中文 ...

  6. Python Requests-学习笔记(6)-响应头

    响应头 我们可以查看以一个Python字典形式展示的服务器响应头: import requestsurl = 'http://httpbin.org/post'r = requests.get(url ...

  7. git处理fork的个人库代码与远程项目库待代码同步与合并

    由于每个项目组git代码管理规范都不一致,分支开发和fork开发模式.我就说下fork处理的流程吧. 问题点: 我的代码是从自己的远程个人仓库clone的.我的个人远程仓库代码是从项目的远程仓库弄fo ...

  8. git撤销远程commit

    git reset --hard [commit_id] git push origin HEAD --force

  9. cxx signal信号捕获

    kill -9 [pid] 该信号不能被捕获 #include <iostream> #include <csignal> static void vSignalHandler ...

  10. 原生js俄罗斯方块

    效果图 方块定位原理通过16宫格定位坐标,把坐标存到数组中去 [ [[2,0],[2,1],[2,2],[1,2]],//L [[1,1],[2,1],[2,2],[2,3]], //左L [[2,0 ...