推薦個超好玩的專案

Python之禪發表於2018-11-29

GitHub上有個很有意思的專案,這個專案就是將一張圖片轉換成一個網頁,例如這張蒙娜麗莎的微笑轉換成網頁之後的效果對比:

640?wx_fmt=png

左邊是原圖,右邊是網頁的效果,網頁其實是由文字“愛”組成的。 具體的實現原理就是將圖片切成很多個N*N的小塊,然後將每個小塊的畫素平均值當做合成畫素的顏色,最後渲染到 HTML 頁面中對應位置的文字顏色。

原專案GitHub地址: https://github.com/xlzd/img2html 不過它只能支援Python2,我Fork了一份,將其轉換為了 Python3  的版本。

安裝

直接通過 GitHub 進行安裝

$ pip install git+https://github.com/lzjun567/img2html

命令列使用方式

安裝完成後,可以直接使用命令 img2html 執行,-i 和 -o 兩個引數是必須指定的,前者表示要轉換的圖片,後者表示輸出的檔名,如果沒有指定 o 引數,那麼 HTML 將直接輸出在控制檯,其它引數都是可選的。

usage: img2html  -i IN -o OUT

img2html : Convert image to HTML

optional arguments:
  -b #RRGGBB, --background #RRGGBB  background color (#RRGGBB format)
  -s (4~30), --size (4~30)          font size (int)
  -c CHAR, --char CHAR              characters
  -t TITLE, --title TITLE           html title
  -f FONT, --font FONT              html font
  -i IN, --in IN                    要轉換的圖片
  -o OUT, --out OUT                 輸出檔名

例如

$ img2html -i mnls.jpg -o test.html

程式碼呼叫

from img2html.converter import Img2HTMLConverter

converter = Img2HTMLConverter(char='愛')
html = converter.convert("mnls.jpg")

with open("mnls.html", mode='w', encoding="utf-8") as f:
   f.write(html)

Python3版本連結:https://github.com/lzjun567/img2html

主要修改的地方有兩處,一個是字串不相容的問題,第二個是修復了 itertools.cycle 沒有next方法的問題。整個專案就一個檔案,可以 Fork 下來讀讀他的原始碼。

推薦閱讀

640?
優秀如你
用轉發點贊支援

相關文章