几行命令,让你用乐高拼成一幅世界名画!| 原创
大家好,我是热爱艺术的了不起!
由于公司业务的调整,开源大叔和开源小妹需要离开一段时间,各自去负责一些新项目,最近都会由了不起来和大家分享开源项目了。希望大家多多支持哈~~~
大叔,小妹,早(最)去(好)早(别)回(回)哈~~嘻嘻
不知道大家是不是经常看到一些像素风格的头像或者表情包,比如这样:
不过我还想给你看个更厉害的,像素风的梵高名作《星月夜》:

如果把细节放大,你会发现这不是普通的像素点,而是一个个乐高基础积木块拼成的,比如右上角的月亮:
厉害吧,今天了不起就给大家分享一个开源项目,轻轻松松地创造出这样一幅用乐高拼成的世界名画。
项目简介
Tiler 是一个使用使用图像构建图像的开源项目,使用 Python 开发。就如同它的名字一样,Tiler 就像一个贴砖工一样,基于一张原始图像,使用一个个小小的瓷砖(图块)铺满墙面形成一个像素风的大图像。不同于其他的马赛克工具,Tiler 可以使用不同形状和尺寸的小图像来绘制图片,比如圆圈、线条、波浪、十字绣、乐高积木、我的世界积木、回形针、字母等等。
项目安装
因为 Tiler 是一个 Python 项目,所以要在 Python 环境下运行,并且需要安装一些必要的依赖。
-- 下载项目
git clone https://github.com/nuno-faria/tiler.git
-- 安装依赖
pip install -r requirements.txt
简单介绍一下项目的构成。

-
tiles:文件夹下保存了几类预置的图块,可以直接使用这些图块来生成图片 -
conf.py:配置文件,可以调节生成图像的参数 -
gen_tiles.py:用于自定义生成图块 -
tiler.py:图像生成主程序
项目使用
参数配置
首先配置一下 conf.py 这个配置文件里的参数,让我们生成期望的图片。这里介绍一下几个关键的参数:
-
COLOR_DEPTH:每个颜色通道中的细分数(例如:DEPTH = 4 -> 4 * 4 * 4 = 64种颜色),可以理解为数值越大色彩更丰富 -
RESIZING_SCALES:应用于每个图块的缩放比例(例如:[1, 0.75, 0.5, 0.25],就会用四种不同大小的图块来生成新的图片)。实际使用中,根据原图像的实际尺寸,来调整这个参数的大小,以达到不同的效果。 -
PIXEL_SHIFT:用于创建每个框的像素移位数,这里最好设置为 None,否则按照默认配置,图块之间会有缝隙 -
POOL_SIZE:线程池大小,CPU 性能强的话可以设置大一些(按照默认的设置,我的笔记本风扇都要起飞了) -
OUT:输出文件的名称
执行程序
我配置的参数如下:
COLOR_DEPTH = 64
RESIZING_SCALES = [0.1]
PIXEL_SHIFT = None
图像的生成很简单,一个命令就搞定了:
python3 tiler.py 原始图片文件路径 图块文件夹路径
比如,我要使用乐高图块将文件 Starry_Night.jpg 处理为像素风的图片,:
python3 tiler.py ./Starry_Night.jpg ./tiles/lego/gen_lego_h
稍等一下就好了,两张图效果对比如下:

不要问了不起为什么和文章开始的星月夜不太一样,因为了不起没有找到对应的原版图片o(╥﹏╥)o
了不起继续恶搞一下,用曲别针来生成一次,结果是这样:

emmm……奇怪的画风。
总结
好啦,这就是 Tiler,一个可以让你自由发挥绘制像素风格的工具。感兴趣的朋友们可以试试哈!
项目地址:
https://github.com/nuno-faria/tiler
写在最后:
这里还有一批Jetbrain全家桶激活码
,需要的可以来看看,每日都会更新,idea、pycharm、webstorm等都有。
点此获取最新激活码(日更)
PS: