之前在交流群有人問過這樣一個問題:
當時我介紹了一個名為 Tiler
的 GitHub 開源庫。這個 Python 項目很騷氣!一秒生成可愛像素風圖片!
今天小五就給大家實戰演示一下,如何將一個普通表情包轉換成像素風?
Tiler簡介
Tiler,意味瓦工,也就是用各種小元素作為 “瓦”,搭建出一張大圖片[1]。
地址:https://github.com/nuno-faria/tiler
項目預設了不少 “瓦”:有樂高、加號、圓形、@符號、心形、乘號、波浪線、橫豎條、《我的世界》中的各種格子,以及曲別針形。在本文中,我更願意將其稱作“像素圖塊”。
該項目,在 GitHub上已經獲得了4.6k的 star。
觀察示例圖片,本文一開始提到的像素風表情包應該也可以實現。
廢話不多說,先安裝。
將項目克隆下載,再安裝 requirements.txt 中的依賴。
git clone https://github.com/nuno-faria/tiler.git
pip install -r requirements.txt
具體操作如下圖所示
轉換像素圖
現在演示如何利用Tiler
,將普通表情包轉換成像素風。
經過前文的操作,可以在本地看到已經下載好了文件和配置。
其中,文件夾 images
里放的是項目示例圖片,文件夾 tiles
里是圖塊目錄,另外 conf.py
里是配置文件。
C:\Users\Administrator\tiler
我自己添加了一個待轉換圖片——333.png
,其實放在其他目錄下也不影響,只需要下一步指定好即可。
除了待轉換圖片,還需要選擇像素圖塊,自帶的像素圖塊中只有line比較合適,我們就先拿它來演示。
其中gen_line_h
放置的都是橫向的線段圖。
生成像素圖,在 tiler 目錄中執行以下命令:
python tiler.py ./images/333.png ./tiles/lines/gen_line_h/
執行過程中,有進度條提醒。待轉換圖片較小,幾秒鍾就完成了。
此時在 tiler 目錄中,已經生成了一個新圖片——out.png
。
關於轉換像素效果呢?
實現了,但沒完全實現,還差了點靈魂——不夠像素。
自定義
我猜測是像素圖塊的問題,上圖使用的是長方形的圖塊。但在自帶目錄里,未發現有正方形,這樣我們就需要自定義像素塊了。
想要更好的像素風轉換效果,最好再調整一下參數配置。
先說自定義像素塊。
自定義圖案
首先,要在目錄tiles
內新建一個文件夾square2
。
在其中放入一個自定義的像素圖塊,我准備的是正方形(50x50像素)。
建議顏色[2]為#F0F0F0
。
C:\Users\Administrator\tiler\tiles\square2
光有一個圖塊還不行,需要利用腳本gen_tiles.py
生成一系列多顏色圖塊。
自定義參數
在生成像素圖塊前,還可以自定義參數。
通過更改conf.py
中的代碼,我調整了DEPTH
等值。
- DEPTH:每種顏色的分區數,默認值 4。
- COLOR_DEPTH:圖片包含顏色的數量,默認值 32。
作者在conf.py
里對每項配置參數都作了注釋,大家在使用時可以自行調整。
自定義效果
接下來生成新的像素圖塊。
在 tiler 目錄下執行命令:
python gen_tiles.py ./tiles/square2/square2.png
打開文件夾gen_square2
,各種顏色的像素圖塊已經被生成好了。
接下來,就是使用新圖塊,重新制作像素圖:
python tiler.py ./images/333.png ./tiles/square2/gen_square2/
生成👇
這次的效果就很不錯了,跟文章一開始的示例風格非常像啦。
下載和使用
如果大家看完比較感興趣,想自己實戰怎么辦?還需要git clone克隆,再自定義配置嘛。
不不不
為了方便大家,我把自定義好的配置文件已經打包,大家解壓后,放置在任意目錄。使用時,在命令行cd(切換路徑)到儲存目錄,最后執行:
python tiler.py ./images/333.png ./tiles/square2/gen_square2/