14

火爆全网!这个项目很骚气!

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzIxNzU1Nzk3OQ%3D%3D&%3Bmid=2247489758&%3Bidx=2&%3Bsn=b7dbdccc25c364422e4120cc7601db6f
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

code小生  一个专注大前端领域的技术平台

公众号回复 Android 加入安卓技术群

BZZzQrR.png!web

本文转自量子位,作者郭一璞

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

YveUnub.gif

Vb6zUjz.png!web

还可以拿来做拼贴画、十字绣等装饰。

在这个名为 tiler 的 GitHub 开源项目里你就可以自动实现这一切,它刚刚开源一天,就已经涨到了 1500 星,增长速度肉眼可见。

https://github.com/nuno-faria/tiler

Tiler,意味瓦工,也就是用各种小元素作为 “瓦”,搭建出一张大图片。

项目预设了不少 “瓦”:有乐高、加号、圆形、@符号、心形、乘号、波浪线、横竖条、《我的世界》中的各种格子,以及曲别针形:

Jrm6far.png!web

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

r6rQzyU.jpg!web

这些不同的 “瓦” 都可以设定大小颜色和角度,以适应不同的画面规格。

另外,你还可以设定整个画面中由多少种颜色构成和 “瓦片” 的大小,也就是马赛克的模糊程度。

你可以用不同材质的 “瓦片”,拼接出各种图案。

比如梵高的《星空》,项目中展示了 10×10、25×25、50×50 三种圆形拼成的规格:

VVvYFr2.jpg!web

10×10 的《星空》

77zyi26.jpg!web

25×25 的《星空》

IvQzymM.jpg!web

50×50 的《星空》

有没有在 PS 里拖动高斯模糊半径控制条的感觉?

你也可以设置让构成图片的 “瓦片” 大小不一

NB7bAjN.png!web

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

VZBJbaY.jpg!web

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

J7f6VfZ.png!web

一个个小砖块,布满了乐高积木表面特有的圆形凸起。

嗯,要是真有这么大一片乐高,想想就爽歪歪。

(此处冲去乐高门店下单,金币 - 1000)

还有乘号版:

vMvMVnu.jpg!web

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

eeMBbmQ.jpg!web

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

ZVRzU3v.jpg!web

就是绣完挂在家里,也和你北欧风 / 极简风 / 莫兰迪风 / 自如风的房间非常搭配,成为全场最吸睛的装饰画。

要是木有耐心,可以考虑一个迷你版:

2IJveib.png!web

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

zauE3ar.jpg!web

bAFNraJ.jpg!web

星空的细节如下:

UZNRzyM.jpg!web

你们能认识这些砖块都是啥么……

运行指南

如果想在自己电脑上运行的话,除了 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);

YbyayyF.png!web

  • OVERLAP_TILES:如果构成图像的 “瓦片” 可以重叠;

  • RENDER :渲染图像;

  • POOL_SIZE :多处理池大小;

  • IMAGE_TO_TILE :图像到瓦片(如果作为第一个参数传递则忽略);

  • TILES_FOLDER :瓦片文件夹(如果作为第二个 arg 传递则忽略);

  • OUT :结果图像文件名。

脑洞丰富的作者

这个项目的作者 ID 叫 nuno-faria,除了这个 Tiler 项目之外,他还开源过不少有趣的东西。

有一个用 Java 写的推箱子:

jU3UZ3j.png!web

像素风满满的桌面足球:

MBJ7Rby.gif

还有俄罗斯方块、弹球等许多种,个个都还蛮有意思的~

如此极具创造力的作者,实在令人佩服,有兴趣的话,可以到其主页深入了解一下:

https://github.com/nuno-faria

以上,便是今天的分享,觉得内容不错,还请点个「 在看 」支持,谢谢各位。

相关阅读

面对Flutter,我终于迈出了第一步

使用Flutter一年后,这是我得到的经验

Flutter 与原生交互总结

已有 Android 项目集成 Flutter 寻坑记

Flutter 体验记

B3Q7faa.jpg!web

如果你有写博客的习惯

欢迎投稿

在看 6Bfiqij.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK