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

像文字雲一樣,用各種小圖拼出大的圖片,構建一個像素風的世界,就像《我的世界》裏一樣,一定非常有趣。

還可以拿來做拼貼畫、十字繡等裝飾。

在這個名爲 tiler 的 GitHub 開源項目裏你就可以自動實現這一切,它剛剛開源一天,就已經漲到了 1500 星,增長速度肉眼可見。

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

Tiler,意味瓦工,也就是用各種小元素作爲 “瓦”,搭建出一張大圖片。

項目預設了不少 “瓦”:有樂高、加號、圓形、@符號、心形、乘號、波浪線、橫豎條、《我的世界》中的各種格子,以及曲別針形:

另外還有一組萬聖節主題 icon,包括各種南瓜燈、小鬼頭、蝙蝠、貓頭鷹:

這些不同的 “瓦” 都可以設定大小顏色和角度,以適應不同的畫面規格。

另外,你還可以設定整個畫面中由多少種顏色構成和 “瓦片” 的大小,也就是馬賽克的模糊程度。

你可以用不同材質的 “瓦片”,拼接出各種圖案。

比如梵高的《星空》,項目中展示了 10×10、25×25、50×50 三種圓形拼成的規格:

10×10 的《星空》

25×25 的《星空》

50×50 的《星空》

有沒有在 PS 裏拖動高斯模糊半徑控制條的感覺?

你也可以設置讓構成圖片的 “瓦片” 大小不一

也可以試試拿樂高積木來拼:

放大看,斑斕的星空,是這樣的:

一個個小磚塊,佈滿了樂高積木表面特有的圓形凸起。

嗯,要是真有這麼大一片樂高,想想就爽歪歪。

(此處衝去樂高門店下單,金幣 - 1000)

還有乘號版:

如果放大,你就會發現,這就是十字繡的圖樣啊!

這麼大一副十字繡,色彩豔麗,斑斕交錯,一看就可以玩很久,退休老母親看到兩眼發光。

就是繡完掛在家裏,也和你北歐風 / 極簡風 / 莫蘭迪風 / 自如風的房間非常搭配,成爲全場最吸睛的裝飾畫。

要是木有耐心,可以考慮一個迷你版:

還可以做成《我的世界》的樣子

星空的細節如下:

你們能認識這些磚塊都是啥麼……

運行指南

如果想在自己電腦上運行的話,除了 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);

  • OVERLAP_TILES:如果構成圖像的 “瓦片” 可以重疊;

  • RENDER :渲染圖像;

  • POOL_SIZE :多處理池大小;

  • IMAGE_TO_TILE :圖像到瓦片(如果作爲第一個參數傳遞則忽略);

  • TILES_FOLDER :瓦片文件夾(如果作爲第二個 arg 傳遞則忽略);

  • OUT :結果圖像文件名。

腦洞豐富的作者

這個項目的作者 ID 叫 nuno-faria,除了這個 Tiler 項目之外,他還開源過不少有趣的東西。

有一個用 Java 寫的推箱子:

像素風滿滿的桌面足球:

還有俄羅斯方塊、彈球等許多種,個個都還蠻有意思的~

如此極具創造力的作者,實在令人佩服,有興趣的話,可以到其主頁深入瞭解一下:

https://github.com/nuno-faria

好文章,我 在看

相關文章