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