Python自動生產表情包

本文同步發(fā)至個人技術博客,歡迎點擊

作為一個數(shù)據(jù)分析師戈二,應該信奉一句話——“一圖勝千言”舒裤。不過這里要說的并不是數(shù)據(jù)可視化,而是一款全民向的產品形態(tài)——表情包>蹩浴L诠!!

表情包不僅僅是一種符號伴鳖,更是一種文化——是促進社交乃至社會發(fā)展的動力之一节值,就像懶。我們堅持認為榜聂,一張優(yōu)秀的表情包搞疗,應該是一幅藝術品,是那忽如一夜春風來的靈感爆發(fā)须肆,是那嘈嘈切切錯雜彈的情思激蕩匿乃,是那直掛云帆濟滄海的壯志豪情,是那一覽天下眾山小的迎風勝利——是不可以容忍碼農用其慣有的形式固定豌汇、流程固定幢炸、毫無美感、毫無藝術的變幻和驚喜的直線思維解構拒贱。然而宛徊,在生產表情包的過程中,如果只是機械地把圖片導進PS——改文字——導出柜思,那也太low了岩调,所以還是把這些很low的機械化的重復動作交給程序來做吧。

之前一直以為圖像的自動處理赡盘,要靠JavaScript腳本控制PS或者AI号枕;后來發(fā)現(xiàn)Python其實也可以做一些簡單的圖像處理,雖然可能比不上MATLAB強大陨享。于是對于圖像處理葱淳,復雜的部分依然在PS或者AI中人工完成,簡單的處理就可以用Python程序完成抛姑。

在開工之前赞厕,先讓我們瞻仰膜拜一下表情包界里程碑式的人物,感謝他們大力推動了表情包在歷史潮流中的顯著進步定硝,他們的英名將長期被人民大眾津津樂道皿桑,他們的音容笑貌將在人們的日常社交中經久不衰,他們的卓越貢獻將永遠鐫刻于表情包史的豐碑上蔬啡!

三大表情巨頭

(如果表情可以收版權費的話诲侮,那就不用辛辛苦苦地去打球、拍戲箱蟆、播音了……)

素材準備

這里我們以網絡上流傳最廣的金館長表情為中心沟绪,以萌萌噠的熊貓頭作為背景,底下加上文字就能構成一張表情包空猜。

熊貓頭模板

金館長表情

然后用PS處理一下圖片大小绽慈,模板大小設為250*250恨旱,表情裁剪一下白邊。

圖片疊加

第一步工作是把表情疊加到模板上坝疼,注意到我們的表情素材是白底而不是透明搜贤,所以位置要控制好,不然會遮蓋住輪廓裙士。

from PIL import Image, ImageDraw, ImageFont
img = Image.open(r"D:\Python-projects\memes\background.jpg")
jgz = Image.open(r"D:\Python-projects\memes\jgz.jpg")
img.paste(jgz,(73,42))
img.show()

這樣就會看到合成的圖片了:

合成的表情包

這張圖片下方還有一截留白入客,那是給我們最后一步添加文字用的。come on腿椎,魔性的笑容已經呈現(xiàn)桌硫,接下來就是最后一擊,are you OK?! 哦不啃炸,are you ready?!

文字疊加

盡管表情包的核心是表情铆隘,然而一行簡短而又震撼的文字往往能起到直擊靈魂的畫龍點睛的作用。

draw = ImageDraw.Draw(img)  
ttfront = ImageFont.truetype('simhei.ttf', 24) 
draw.text((32, 190),"我的內心毫無波動\n   甚至還想笑",fill=(0,0,0), font=ttfront) 
img.show()
img.save(".\Python生成的表情包.jpg")

這樣就生成了一張完整的表情包了:

完整表情包

其中draw.text() 是往圖層里輸入文字南用,所以可以不斷執(zhí)行這條命令以在圖片里添加多層文字膀钠。

你還可以導入多張表情,以及多個文本臺詞裹虫,這樣就可以大規(guī)模批量自動生產表情包了……

問題升華

你以為到這里就結束了嗎肿嘲?too young啊筑公!請童鞋們思考這個問題:

  • 表情包下留白的空間是有限的
  • 中文和英文以及標點符號占據(jù)的空間不同
  • 如果文本太長雳窟,圖片放不下,就需要換行匣屡;可是如果行太多封救,圖片也放不下

因此,當你腦中突然閃現(xiàn)出一句既包含中文也有英文還有N多標點符號以增強語氣的臺詞時捣作,怎么設計一個算法誉结,用來尋找合適的字號大小,文本插入位置券躁,文本在哪些地方換行惩坑,使文本能在有限空間居中展示,而且還要滿足一定的觀感呢也拜?

突然亂入的嘲諷

算了旭贬,還是在這里結束吧……

于是,通過這篇嚴肅正經的教程搪泳,我們學會了使用Python進行簡單圖像處理的方法,更get到一項實用的神技:自動生產表情包……

最重要的是扼脐,老夫經常說的“信不信我分分鐘批量做你大堆的表情包”岸军,終于成為現(xiàn)實了……

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末奋刽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子艰赞,更是在濱河造成了極大的恐慌佣谐,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,835評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件方妖,死亡現(xiàn)場離奇詭異狭魂,居然都是意外死亡,警方通過查閱死者的電腦和手機党觅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評論 2 383
  • 文/潘曉璐 我一進店門雌澄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杯瞻,你說我怎么就攤上這事镐牺。” “怎么了魁莉?”我有些...
    開封第一講書人閱讀 156,481評論 0 345
  • 文/不壞的土叔 我叫張陵睬涧,是天一觀的道長。 經常有香客問我旗唁,道長畦浓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,303評論 1 282
  • 正文 為了忘掉前任检疫,我火速辦了婚禮讶请,結果婚禮上,老公的妹妹穿的比我還像新娘电谣。我一直安慰自己秽梅,他們只是感情好,可當我...
    茶點故事閱讀 65,375評論 5 384
  • 文/花漫 我一把揭開白布剿牺。 她就那樣靜靜地躺著企垦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晒来。 梳的紋絲不亂的頭發(fā)上钞诡,一...
    開封第一講書人閱讀 49,729評論 1 289
  • 那天,我揣著相機與錄音湃崩,去河邊找鬼荧降。 笑死,一個胖子當著我的面吹牛攒读,可吹牛的內容都是我干的朵诫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,877評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼薄扁,長吁一口氣:“原來是場噩夢啊……” “哼剪返!你這毒婦竟也來了废累?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,633評論 0 266
  • 序言:老撾萬榮一對情侶失蹤脱盲,失蹤者是張志新(化名)和其女友劉穎邑滨,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钱反,經...
    沈念sama閱讀 44,088評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡掖看,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,443評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了面哥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哎壳。...
    茶點故事閱讀 38,563評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖幢竹,靈堂內的尸體忽然破棺而出耳峦,到底是詐尸還是另有隱情,我是刑警寧澤焕毫,帶...
    沈念sama閱讀 34,251評論 4 328
  • 正文 年R本政府宣布蹲坷,位于F島的核電站,受9級特大地震影響邑飒,放射性物質發(fā)生泄漏循签。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,827評論 3 312
  • 文/蒙蒙 一疙咸、第九天 我趴在偏房一處隱蔽的房頂上張望县匠。 院中可真熱鬧,春花似錦撒轮、人聲如沸乞旦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兰粉。三九已至,卻和暖如春顶瞳,著一層夾襖步出監(jiān)牢的瞬間玖姑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評論 1 264
  • 我被黑心中介騙來泰國打工慨菱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留焰络,地道東北人。 一個月前我還...
    沈念sama閱讀 46,240評論 2 360
  • 正文 我出身青樓符喝,卻偏偏與公主長得像闪彼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子协饲,可洞房花燭夜當晚...
    茶點故事閱讀 43,435評論 2 348

推薦閱讀更多精彩內容