作為一個數(shù)據(jù)分析師,應(yīng)該信奉一句話——"一圖勝千言"。不過這里要說的并不是數(shù)據(jù)可視化,而是一款全民向的產(chǎn)品形態(tài)——表情包?。。?!
表情包不僅僅是一種符號,更是一種文化,是促進社交乃至社會發(fā)展的動力之一,就像懶。
我們堅持認(rèn)為,一張優(yōu)秀的表情包,應(yīng)該是一幅藝術(shù)品,是那忽如一夜春風(fēng)來的靈感爆發(fā),是那嘈嘈切切錯雜彈的情思激蕩,是那直掛云帆濟滄海的壯志豪情,是那一覽天下眾山小的榮耀勝利,是不可以容忍碼農(nóng)用其慣有的形式固定、流程固定、毫無美感、毫無藝術(shù)的變幻和驚喜的直線思維解構(gòu)。
然而,在生產(chǎn)表情包的過程中,如果只是機械地把圖片導(dǎo)進PS --> 改文字--> 導(dǎo)出,那也太low了,所以還是把這些很low的機械化的重復(fù)動作交給程序來做吧。
之前一直以為圖像的自動處理,要靠JavaScript腳本控制PS或者AI;后來發(fā)現(xiàn)Python其實也可以做一些簡單的圖像處理,雖然可能比不上 MATLAB 強大。
于是對于圖像處理,復(fù)雜的部分依然在PS或者AI中人工完成,簡單的處理就可以用Python程序完成。
在開工之前,先讓我們瞻仰膜拜一下表情包界里程碑式的人物,感謝他們大力推動了表情包在歷史潮流中的顯著進步,他們的英名將長期被人民大眾津津樂道,他們的音容笑貌將在人們的日常社交中經(jīng)久不衰,他們的卓越貢獻將永遠(yuǎn)鐫刻于表情包史的豐碑上!
(如果表情可以收版權(quán)費的話,那就不用辛辛苦苦地去打球、拍戲、播音了……)
素材準(zhǔn)備
這里我們以網(wǎng)絡(luò)上流傳最廣的金館長表情為中心,以萌萌噠的熊貓頭作為背景,底下加上文字就能構(gòu)成一張表情包。
然后用PS處理一下圖片大小,模板大小設(shè)為250*250,表情裁剪一下白邊。
圖片疊加
第一步工作是把表情疊加到模板上,注意到我們的表情素材是白底而不是透明,所以位置要控制好,不然會遮蓋住輪廓。
draw=ImageDraw.Draw(img)ttfront=ImageFont.truetype('simhei.ttf',24)draw.text((32,190),"我的內(nèi)心毫無波動甚至還想笑",fill=(0,0,0),font=ttfront)img.show()img.save(".Python生成的表情包.jpg")
這樣就會看到合成的圖片了:
這張圖片下方還有一截留白,那是給我們最后一步添加文字用的。come on,魔性的笑容已經(jīng)呈現(xiàn),接下來就是最后一擊,are you OK?! 哦不,are you ready?!
文字疊加
盡管表情包的核心是表情,然而一行簡短而又震撼的文字往往能起到直擊靈魂的畫龍點睛的作用。
draw= ImageDraw.Draw(img)ttfront = ImageFont.truetype('simhei.ttf',24)draw.text((32,190),"我的內(nèi)心毫無波動 甚至還想笑",fill=(0,0,0),font=ttfront)img.show()img.save(".Python生成的表情包.jpg")
這樣就生成了一張完整的表情包了:
其中draw.text()是往圖層里輸入文字,所以可以不斷執(zhí)行這條命令以在圖片里添加多層文字。
你還可以導(dǎo)入多張表情,以及多個文本臺詞,這樣就可以大規(guī)模批量自動生產(chǎn)表情包了……
問題升華
你以為到這里就結(jié)束了嗎?too young??!請童鞋們思考這個問題:
表情包下留白的空間是有限的
中文和英文以及標(biāo)點符號占據(jù)的空間不同
如果文本太長,就需要換行;可是如果行太多,圖片就放不下
因此,當(dāng)你腦中突然閃現(xiàn)出一句既包含中文也有英文還有N多標(biāo)點符號以增強語氣的臺詞時,怎么設(shè)計一個算法,用來尋找合適的字號大小,文本插入位置,文本在哪些地方換行,使文本能在有限空間居中展示,而且還要滿足一定的觀感呢?
算了,還是在這里結(jié)束吧……
于是,通過這篇嚴(yán)肅正經(jīng)的教程,我們學(xué)會了使用Python進行簡單圖像處理的方法,更get到一項實用的神技:自動生產(chǎn)表情包。
最重要的是,老夫經(jīng)常說的"信不信我分分鐘批量做你大堆的表情包",終于成為現(xiàn)實了……對此,我想說,完了我愛上了Python!因為Python也太好玩了,方向太多了!
-
圖像處理
+關(guān)注
關(guān)注
27文章
1320瀏覽量
57529 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1469瀏覽量
34700 -
python
+關(guān)注
關(guān)注
56文章
4822瀏覽量
85876
原文標(biāo)題:Python自動生成表情包,Python在手,從此斗圖無敵手!
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
TensorFlow常用Python擴展包
什么是python包、模塊和庫?
python的一些冷知識(四)
Python的一些畫圖函數(shù)
Python基礎(chǔ)-圖像處理工具包
Python教程之如何使用使用PIL庫做圖像處理的資料說明

用Python做幾個表情包
Python的一些經(jīng)典復(fù)習(xí)資料免費下載
Python的處理速度怎樣做可以加快

評論