閱讀文本大概需要 5 分鐘。
前段時間,一隻可愛的小黃鴨火起來了,據說是抖音上一位黃衣小姐姐模仿小黃鴨的動作而走紅。這隻動作呆萌的小黃鴨表情包也跟着火起來了,小黃鴨表情包也由一隻變成多隻,顏色也變幻莫測。
作爲一個合格的程序猿,我們怎麼能落後,我們要做出符合程序猿標誌的小黃鴨,我們把小黃鴨的動態圖變成字符型的小黃鴨動態圖。直接上圖,一張原版小黃鴨圖,一張程序猿標誌的字符型小黃鴨。ps:字符畫圖離遠點看可能更有效果哦!
這個程序怎麼做呢?不要急,我給你分析下這個程序怎麼實現。
程序步驟
實現字符動態圖轉化只需要 3 步,合久必分,分久必合。
- 把原動態圖拆分成一幀一幀的圖片。
- 把拆分的每幀圖片轉化爲字符畫。
- 把每幀字符畫圖片組合成動態圖。
程序環境
語言:Python 3.6 編輯器:Pycharm
第三方庫安裝
運行程序前,我們需要安裝兩個重要的庫,第一個是 Imageio,它是一個 Python 庫,提供了一個簡單的界面來讀取和寫入各種圖像數據,包括動畫圖像,體積數據和科學格式。 它是跨平臺的,可在 Python 2.7 和 3.4+ 上運行,並且易於安裝。
用 pip 命令可以快速安裝,因工作需要,我電腦裝了 Python2.7 和 Python3.6 兩個版本,我用數字對不同版本進行了區分,如果你的電腦只安裝了一個版本,可以把前面 python3 -m 命令去掉,直接用 pip 後面的命令即可。
python3 -m pip install imageio
需要安裝的第二個庫是 opencv-python 庫,OpenCV 是一個基於 BSD 許可(開源)發行的跨平臺計算機視覺庫,可以運行在 Linux、Windows、MacOS 操作系統上。它輕量級而且高效——由一系列 C 函數和少量C++類構成,同時提供了 Python、Ruby、MATLAB 等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。簡言之,通過 openCV 可實現計算機圖像、視頻的編輯。廣泛應用於圖像識別、運動跟蹤、機器視覺等領域。
python3 -m pip install opencv-python
導入編輯器
把上面安裝好的兩個庫在編輯器 Pycharm 的 settings/Interpreter 中安裝好並在程序中導入,說明下,opencv-python 這個庫這次只用到其中的 cv2 模塊,所以只需導入這個模塊。
import imageio import cv2
拆分圖片
先定義好原始圖片和處理後的圖片的保存路徑,這個大家運行程序前需要換成你自己需要轉化的圖片路徑和轉換後字符畫圖片的路徑和名稱。然後用 imageio 中的 mimread 方法讀取原動態圖,把動態圖每幀都拆分成若干張圖片。
轉化爲字符畫
應用上面定義好的圖片灰度與字符的映射,把上面的每幀圖片都轉化爲字符畫,並保存在一個列表中。
串聯字符畫爲動態圖
最後把剛纔處理好的每幀的字符畫通過 imageio 庫裏的 mimsave 方法組合成動態圖,變成字符動態圖。
imageio.mimsave(dealPic, A, 'GIF', duration=0.1) # 把A列表裏的字符畫組合起來,變成動態圖 print('轉化完成,請到你保存的路徑下查看')
通過這個程序,我們就可以把我們喜歡的圖片變成字符畫動態圖。下面這個用本程序製作的字符畫大家知道是誰嗎?歡迎在下方小程序的留言區告訴我。
覺得不錯,點贊、轉發朋友圈都是一種支持。