使用 Tiler 制作马赛克镶嵌画

文章首发于个人公众号:阿拉平平

Tiler 是一款 Python 开发的马赛克镶嵌画制作工具 。与其它镶嵌工具不同的是,Tiler 制作的镶嵌画可以适应不同形状和大小的图块(不限于方块)。本文将介绍如何使用 Tiler 制作马赛克镶嵌画。

安装

在下载项目前,需要安装好 Python3 和 pip。具体安装方法可以参考网上资料,这里就不多赘述了,完成后执行以下步骤。

下载项目:

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

安装依赖包:

pip install -r requirements.txt

目录及文件说明:

.
├── conf.py                  # 配置文件
├── gen_tiles.py             # 图块生成脚本
├── images                   # 项目示例图片
├── requirements.txt         # 依赖包
├── tiler.py                 # 图片制作脚本
├── tiles                    # 图块目录 (以下均为项目自带图块)
│   ├── at
│   ├── circles
│   ├── clips
│   ├── hearts
│   ├── lego
│   ├── lines
│   ├── minecraft
│   ├── plus
│   ├── times
│   └── waves
└── tiles.pickle

使用方法

本章将介绍 Tiler 的使用方法,包含以下内容:

  • 自带图块
  • 自定义图块
  • 配置参数

自带图块

首先,准备一张需要制作成镶嵌画的图片,如下:
cake.png

图片可以放到任何目录下。出于方便,我将图片 cake.png 直接放到 images 目录下。

之后,选择需要镶嵌的图块。Tiler 自带多种图块,这里我选择 @ 符号作为镶嵌图块,以下是图块 tiles/at 目录:

at
├── at.png
└── gen_at

说明:

  • at.png 是图块的原始图片。
  • gen_at 为图块目录,其中包含各种颜色的 @ 符号。

在 tiler 目录中执行以下命令:

python tiler.py ./images/cake.png ./tiles/at/gen_at/

执行中可以看到进度,整个过程可能会花费一些时间。完成后,tiler 目录中会生成 out.png,效果如下:
out.png

这样,镶嵌画就制作完成了。可能有童鞋会问:我不想用工具自带的图块,这个图块能不能自定义呢?

答案是可以的,Tiler 提供了生成图块的脚本 gen_tiles.py。接下来,让我们试下用自定义图块制作镶嵌画。

自定义图块

首先,准备自定义图块的图片,如下:
drop.png

在 tiles 目录下新建目录 drop,目录结构如下:

drop
└── drop.png

在 tiler 目录下执行命令:

python gen_tiles.py ./tiles/drop/drop.png

完成后会在 tiles/drop 下生成 gen_drop 目录,之后就可以使用该图块了:

brick
├── drop.png
└── gen_drop

使用自定义图块制作的效果:

out.png

配置参数

由于样例图片比较简单,所以使用默认配置就可以满足。而对于复杂的图片,可调大配置文件 tiler/conf.pyDEPTHCOLOR_DEPTH 的值。

说明:

  • DEPTH :每种颜色的分区数,默认值 4。
  • COLOR_DEPTH :图片包含颜色的数量,默认值 32。

写在后面

  • 可以看到,Tiler 简单易用并且支持自定义图块,生成的镶嵌画效果也不错,目前在 GitHub[1] 上已经获得了 3700+ 的 star。

  • 本文使用的原图 cake.png[2] 和 drop.png[3] 均来自于 Flaticon。在制作图块时,建议将颜色修改为#F0F0F0 ,否则生成的镶嵌画颜色会出现偏差。

  • 配置参数 一节中,我只列了部分参数,一些参数还未测试。作者在 conf.py 里已对每项配置加过注释,有兴趣的童鞋可以自己修改测试下。

参考资料

[1] GitHub:https://github.com/nuno-faria/tiler
[2] cake.png:https://www.flaticon.com/free-icon/cake_1102780
[3] drop.png:https://www.flaticon.com/free-icon/drop_179529

发布了7 篇原创文章 · 获赞 19 · 访问量 3689

猜你喜欢

转载自blog.csdn.net/jiangyou0k/article/details/102967991