点击“开发者技术前线”,选择“星标????”
在看|星标|留言, 真爱

来源:量子位
像文字云一样,用各种小图拼出大的图片,构建一个像素风的世界,就像《我的世界》里一样,一定非常有趣。


还可以拿来做拼贴画、十字绣等装饰。
在这个名为tiler的GitHub开源项目里你就可以自动实现这一切,它刚刚开源一天,就已经涨到了1100星,增长速度肉眼可见。
Tiler,意味瓦工,也就是用各种小元素作为“瓦”,搭建出一张大图片。
项目预设了不少“瓦”:有乐高、加号、圆形、@符号、心形、乘号、波浪线、横竖条、《我的世界》中的各种格子,以及曲别针形:

另外还有一组万圣节主题icon,包括各种南瓜灯、小鬼头、蝙蝠、猫头鹰:

这些不同的“瓦”都可以设定大小颜色和角度,以适应不同的画面规格。
另外,你还可以设定整个画面中由多少种颜色构成和“瓦片”的大小,也就是马赛克的模糊程度。
你可以用不同材质的“瓦片”,拼接出各种图案。
比如梵高的《星空》,项目中展示了10×10、25×25、50×50三种圆形拼成的规格:

△ 10×10的《星空》

△ 25×25的《星空》

△ 50×50的《星空》
有没有在PS里拖动高斯模糊半径控制条的感觉?
你也可以设置让构成图片的“瓦片”大小不一

也可以试试拿乐高积木来拼:

放大看,斑斓的星空,是这样的:

一个个小砖块,布满了乐高积木表面特有的圆形凸起。
嗯,要是真有这么大一片乐高,想想就爽歪歪。
(此处冲去乐高门店下单,金币-1000)
还有乘号版:

如果放大,你就会发现,这就是十字绣的图样啊!

这么大一副十字绣,色彩艳丽,斑斓交错,一看就可以玩很久,退休老母亲看到两眼发光。

就是绣完挂在家里,也和你北欧风/极简风/莫兰迪风/自如风的房间非常搭配,成为全场最吸睛的装饰画。
要是木有耐心,可以考虑一个迷你版:

还可以做成《我的世界》的样子


星空的细节如下:

你们能认识这些砖块都是啥么……
运行指南
如果想在自己电脑上运行的话,除了Python 3和pip,你还需要装OpenCV、numpy和tqdm。
之后,靠命令行就可以解决了。
你需要设置几个参数:
在gen_tiles.py中设置:
DEPTH:每个颜色通道中的分割数量(ex: DEPTH = 4 -> 4 *4* 4 = 64 colors);
ROTATIONS:旋转列表,以度为单位,应用在原始图像上(ex: [0, 90])。
在tiler.py中设置:
COLOR_DEPTH:每个颜色通道中的分割数量(ex: COLOR_DEPTH = 4 -> 4 4 4 = 64 colors);
RESIZING_SCALES:应用于每个图块的比例(ex: [1, 0.75, 0.5, 0.25]);
PIXEL_SHIFT:移动以创建每个框的像素数(ex: (5,5)); if None, shift will be the same as the tile dimension);;

OVERLAP_TILES:如果构成图像的“瓦片”可以重叠;
RENDER:渲染图像;
POOL_SIZE:多处理池大小;
IMAGE_TO_TILE:图像到瓦片(如果作为第一个参数传递则忽略);
TILES_FOLDER:瓦片文件夹(如果作为第二个arg传递则忽略);
OUT:结果图像文件名。
脑洞丰富的作者
这个项目的作者ID叫nuno-faria,除了这个Tiler项目之外,他还开源过不少有趣的东西。
有一个用Java写的推箱子:

像素风满满的桌面足球:

还有俄罗斯方块、弹球等许多种,个个都还蛮有意思的~
传送门
https://github.com/nuno-faria/tiler
最后推荐下:Python高校,垂直的Python初学者

END
后台回复“面试” “资料” 领取一份干货,数百技术面试手册等你
开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。
历史推荐
PyCharm + Docker:打造最舒适的深度学习炼丹炉



好文点个在看吧

Tiler是一款开源项目,能够将图片转化为像素风格,使用各种小图拼接成大图,如乐高、《我的世界》风格。项目支持多种‘瓦片’样式,如圆形、加号等,并可调整颜色、大小和角度。用户可设定画面颜色数量和‘瓦片’大小,实现不同风格的马赛克效果。
1316

被折叠的 条评论
为什么被折叠?



