
本文轉自:量子位,作者郭一璞 整理來自:大鄧和他的 Python 像文字雲一樣,用各種小圖拼出大的圖檔,建構一個像素風的世界,就像《我的世界》裡一樣,一定非常有趣。
還可以拿來做拼貼畫、十字繡等裝飾。 在這個名為 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
-END-
往期精彩
1、B站這門神課拯救了我薄弱的計算機基礎2、Python3十大經典錯誤及解決辦法3、Python3.9測試版來咯