美文网首页
Python | 使用 Tiler 制作马赛克镶嵌画

Python | 使用 Tiler 制作马赛克镶嵌画

作者: Xpitz | 来源:发表于2019-11-08 10:15 被阅读0次

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

    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

    相关文章

      网友评论

          本文标题:Python | 使用 Tiler 制作马赛克镶嵌画

          本文链接:https://www.haomeiwen.com/subject/xxrdvctx.html