点击上方“
五分钟学算法
”,选择设为“
设为星标
”
优质文章,第一时间送达!
像文字云一样,用各种小图拼出大的图片,构建一个像素风的世界,就像《我的世界》里一样,一定非常有趣。
在这个名为
tiler
的 GitHub 开源项目里你就可以自动实现这一切,它刚刚开源一天,就已经涨到了 1500 星,增长速度肉眼可见。
https://github.com/nuno-faria/tiler
Tiler,意味瓦工,也就是用各种小元素作为 “瓦”,搭建出一张大图片。
项目预设了不少 “瓦”:有乐高、加号、圆形、@符号、心形、乘号、波浪线、横竖条、《我的世界》中的各种格子,以及曲别针形:
另外还有一组万圣节主题 icon,包括各种南瓜灯、小鬼头、蝙蝠、猫头鹰:
这些不同的 “瓦” 都可以设定大小颜色和角度,以适应不同的画面规格。
另外,你还可以设定整个画面中由多少种颜色构成和 “瓦片” 的大小,也就是马赛克的模糊程度。
比如梵高的《星空》,项目中展示了 10×10、25×25、50×50 三种圆形拼成的规格:
△
10×10 的《星空》
△
25×25 的《星空》
△
50×50 的《星空》
这么大一副十字绣,色彩艳丽,斑斓交错,一看就可以玩很久,退休老母亲看到两眼发光。
就是绣完挂在家里,也和你北欧风 / 极简风 / 莫兰迪风 / 自如风的房间非常搭配,成为全场最吸睛的装饰画。
运行指南
如果想在自己电脑上运行的话,除了 Python 3 和 pip,你还需要装 OpenCV、numpy 和 tqdm。
-
DEPTH
:每个颜色通道中的分割数量 (ex: DEPTH = 4 -> 4 * 4 * 4 = 64 colors);
-
ROTATIONS
:旋转列表,以度为单位,应用在原始图像上 (ex: [0, 90])。
-
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);