火爆全網!這個 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
好文章,我 在看