1 簡述
? ? ?python語言生態(tài)中有很多方便使用的庫,使用這些庫可以方便的處理一些工作,或做一些有趣的事情。PIL庫是python語言中處理圖片使用比較多的庫,可以對圖片進行旋轉(zhuǎn)、摳圖、復(fù)制粘貼、顏色變幻等。這篇文章分享的是使用PIL庫將gif動態(tài)圖轉(zhuǎn)為各種特殊字符拼成的動態(tài)圖,它的效果如下:


2 原理
? ? ? ?將動圖轉(zhuǎn)為特殊符號組成的動圖原理就是對組成gif動圖的每一幀進行轉(zhuǎn)換,每一幀都轉(zhuǎn)為有特殊字符組成的圖片,然后再將每一幀圖組合成動圖。對每一幀轉(zhuǎn)為特殊字符組成的圖片需要分析每一個像素值,因為彩色圖的像素值是由RGB三原色組成的一個元祖,但最終目的圖是黑白色的,所以先將彩色圖轉(zhuǎn)為黑白圖,黑白圖的每一個像素值是0-255的一個值,0是純黑色,255是純白色,這樣就可以得到每一個像素的灰度值(專業(yè)術(shù)語,就是0-255中的一個值),再根據(jù)這個灰度值找到對應(yīng)的特殊字符,然后將這個特殊字符畫到另一張相同長寬的白底圖片的相應(yīng)坐標位置上。
3 實現(xiàn)
? ? ? ?實現(xiàn)包括兩大步驟,第一步驟是對每一幀轉(zhuǎn)為特殊字符圖片;第二大步驟是對gif動圖循環(huán)取每一幀,將每一幀圖片傳給第一步驟,讓其處理。
1、處理每一幀圖片

2、獲取動態(tài)圖的每一幀圖片

處理完每一幀圖片后會將其保存到本地磁盤中,然后再對每一幀圖片進行組裝生成動態(tài)gif圖。
3、生成動態(tài)圖

? ? ? ?最終效果圖就是剛開始的那張由密密麻麻特殊字符組成的動圖,詳細的設(shè)計步驟還得從代碼里面解讀,熟悉編程的朋友一看就能明白其中的意思,畢竟python語言簡單明了。