超有趣的 Python 實戰(zhàn):將圖片轉成像素風!
這是「進擊的Coder」的第 557?篇技術分享作者:朱小五來源:快學 Python
閱讀本文大概需要 6 分鐘。
之前在交流群有人問過這樣一個問題:

當時我介紹了一個名為 Tiler 的 GitHub 開源庫。這個 Python 項目很騷氣!一秒生成可愛像素風圖片!
今天小五就給大家實戰(zhàn)演示一下,如何將一個普通表情包轉換成像素風?

Tiler簡介
Tiler,意味瓦工,也就是用各種小元素作為 “瓦”,搭建出一張大圖片[1]。
地址:https://github.com/nuno-faria/tiler
項目預設了不少 “瓦”:有樂高、加號、圓形、@符號、心形、乘號、波浪線、橫豎條、《我的世界》中的各種格子,以及曲別針形。在本文中,我更愿意將其稱作“像素圖塊”。

該項目,在 GitHub上已經獲得了4.6k的 star。

觀察示例圖片,本文一開始提到的像素風表情包應該也可以實現(xiàn)。
廢話不多說,先安裝。
將項目克隆下載,再安裝requirements.txt中的依賴。
git?clone?https://github.com/nuno-faria/tiler.git
pip?install?-r?requirements.txt
具體操作如下圖所示

轉換像素圖
現(xiàn)在演示如何利用Tiler,將普通表情包轉換成像素風。
經過前文的操作,可以在本地看到已經下載好了文件和配置。
其中,文件夾images里放的是項目示例圖片,文件夾tiles里是圖塊目錄,另外conf.py里是配置文件。
C:\Users\Administrator\tiler

我自己添加了一個待轉換圖片——333.png,其實放在其他目錄下也不影響,只需要下一步指定好即可。

除了待轉換圖片,還需要選擇像素圖塊,自帶的像素圖塊中只有l(wèi)ine比較合適,我們就先拿它來演示。

其中gen_line_h放置的都是橫向的線段圖。

生成像素圖,在 tiler 目錄中執(zhí)行以下命令:
python?tiler.py?./images/333.png?./tiles/lines/gen_line_h/

執(zhí)行過程中,有進度條提醒。待轉換圖片較小,幾秒鐘就完成了。
此時在 tiler 目錄中,已經生成了一個新圖片——out.png。

關于轉換像素效果呢?
實現(xiàn)了,但沒完全實現(xiàn),還差了點靈魂——不夠像素。
自定義
我猜測是像素圖塊的問題,上圖使用的是長方形的圖塊。但在自帶目錄里,未發(fā)現(xiàn)有正方形,這樣我們就需要自定義像素塊了。
想要更好的像素風轉換效果,最好再調整一下參數(shù)配置。
先說自定義像素塊。
自定義圖案
首先,要在目錄tiles內新建一個文件夾square2。
在其中放入一個自定義的像素圖塊,我準備的是正方形(50x50像素)。
建議顏色[2]為#F0F0F0。
C:\Users\Administrator\tiler\tiles\square2

光有一個圖塊還不行,需要利用腳本gen_tiles.py 生成一系列多顏色圖塊。
自定義參數(shù)
在生成像素圖塊前,還可以自定義參數(shù)。
通過更改conf.py中的代碼,我調整了DEPTH等值。
- DEPTH:每種顏色的分區(qū)數(shù),默認值 4。
- COLOR_DEPTH:圖片包含顏色的數(shù)量,默認值 32。

作者在conf.py里對每項配置參數(shù)都作了注釋,大家在使用時可以自行調整。
自定義效果
接下來生成新的像素圖塊。
在 tiler 目錄下執(zhí)行命令:
python?gen_tiles.py?./tiles/square2/square2.png


打開文件夾gen_square2,各種顏色的像素圖塊已經被生成好了。

接下來,就是使用新圖塊,重新制作像素圖:
python?tiler.py?./images/333.png?./tiles/square2/gen_square2/
生成??

這次的效果就很不錯了,跟文章一開始的示例風格非常像啦。
下載和使用
如果大家看完比較感興趣,想自己實戰(zhàn)怎么辦?還需要git clone克隆,再自定義配置嘛。
不不不

為了方便大家,我把自定義好的配置文件已經打包,大家解壓后,放置在任意目錄。使用時,在命令行cd(切換路徑)到儲存目錄,最后執(zhí)行:
python?tiler.py?./images/333.png?./tiles/square2/gen_square2/
是不是特簡單?。?!
下載方式,點擊關注公眾號「進擊的 Coder」后臺回復“像素” ,即可獲取全部文件!
小結
通過一系列自定義設置,我們實現(xiàn)了表情包像素風的轉換。
這個項目Tiler不僅僅于此,它還可以實現(xiàn)更多滿足你腦洞的像素圖。
如果你對今天的教程覺得還不錯的話,來點個贊吧??
未完待續(xù)...
其實在沒發(fā)現(xiàn)Tiler這個庫前,自己還使用過30行代碼生成過像素圖。效果其實比這次更佳,本文點贊??????夠多的話,我們繼續(xù)分享~
參考資料
[1]這個 Python 項目很騷氣!一秒生成可愛像素風圖片!: https://mp.weixin.qq.com/s/vbDkYI2HX6ga2DxMuAWaYw
[2]將圖片繪制成像素風的畫: https://blog.csdn.net/weixin_43289135/article/details/105208535

End
崔慶才的新書《Python3網絡爬蟲開發(fā)實戰(zhàn)(第二版)》已經正式上市了!書中詳細介紹了零基礎用 Python 開發(fā)爬蟲的各方面知識,同時相比第一版新增了 JavaScript 逆向、Android 逆向、異步爬蟲、深度學習、Kubernetes 相關內容,?同時本書已經獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!
內容介紹:《Python3網絡爬蟲開發(fā)實戰(zhàn)(第二版)》內容介紹

掃碼購買

點個在看你最好看

