Python自動生成表情包,Python在手,從此斗圖無敵手!
作者 | Python雁橫
如需轉載,請聯繫原作者授權
作為一個數據分析師,應該信奉一句話——"一圖勝千言"。不過這裡要說的並不是數據可視化,而是一款全民向的產品形態——表情包!!!!
表情包不僅僅是一種符號,更是一種文化,是促進社交乃至社會發展的動力之一,就像懶。
我們堅持認為,一張優秀的表情包,應該是一幅藝術品,是那忽如一夜春風來的靈感爆發,是那嘈嘈切切錯雜彈的情思激蕩,是那直掛雲帆濟滄海的壯志豪情,是那一覽天下眾山小的榮耀勝利,是不可以容忍碼農用其慣有的形式固定、流程固定、毫無美感、毫無藝術的變幻和驚喜的直線思維解構。
然而,在生產表情包的過程中,如果只是機械地把圖片導進PS --> 改文字--> 導出,那也太low了,所以還是把這些很low的機械化的重複動作交給程序來做吧。
之前一直以為圖像的自動處理,要靠JavaScript腳本控制PS或者AI;後來發現Python其實也可以做一些簡單的圖像處理,雖然可能比不上 MATLAB 強大。
於是對於圖像處理,複雜的部分依然在PS或者AI中人工完成,簡單的處理就可以用Python程序完成。
在開工之前,先讓我們瞻仰膜拜一下表情包界里程碑式的人物,感謝他們大力推動了表情包在歷史潮流中的顯著進步,他們的英名將長期被人民大眾津津樂道,他們的音容笑貌將在人們的日常社交中經久不衰,他們的卓越貢獻將永遠鐫刻於表情包史的豐碑上!
(如果表情可以收版權費的話,那就不用辛辛苦苦地去打球、拍戲、播音了……)
素材準備
這裡我們以網路上流傳最廣的金館長表情為中心,以萌萌噠的熊貓頭作為背景,底下加上文字就能構成一張表情包。
然後用PS處理一下圖片大小,模板大小設為250*250,表情裁剪一下白邊。
圖片疊加
第一步工作是把表情疊加到模板上,注意到我們的表情素材是白底而不是透明,所以位置要控制好,不然會遮蓋住輪廓。
draw
= ImageDraw.Draw(img)ttfront = ImageFont.truetype("simhei.ttf",
24)draw.text((32, 190),"我的內心毫無波動 甚至還想笑",fill=(0,0,0),
font=ttfront)img.show()img.save(".Python生成的表情包.jpg")
這樣就會看到合成的圖片了:
這張圖片下方還有一截留白,那是給我們最後一步添加文字用的。come on,魔性的笑容已經呈現,接下來就是最後一擊,are you OK?! 哦不,are you ready?!
文字疊加
儘管表情包的核心是表情,然而一行簡短而又震撼的文字往往能起到直擊靈魂的畫龍點睛的作用。
draw
= ImageDraw.Draw(img)ttfront = ImageFont.truetype("simhei.ttf",
24)draw.text((32,190),"我的內心毫無波動 甚至還想笑",fill=(,,),
font=ttfront)img.show()img.save(".Python生成的表情包.jpg")
這樣就生成了一張完整的表情包了:
其中 draw.text()是往圖層里輸入文字,所以可以不斷執行這條命令以在圖片里添加多層文字。
你還可以導入多張表情,以及多個文本台詞,這樣就可以大規模批量自動生產表情包了……
問題升華
你以為到這裡就結束了嗎?too young啊!請童鞋們思考這個問題:
表情包下留白的空間是有限的
中文和英文以及標點符號佔據的空間不同
如果文本太長,就需要換行;可是如果行太多,圖片就放不下
因此,當你腦中突然閃現出一句既包含中文也有英文還有N多標點符號以增強語氣的台詞時,怎麼設計一個演算法,用來尋找合適的字型大小大小,文本插入位置,文本在哪些地方換行,使文本能在有限空間居中展示,而且還要滿足一定的觀感呢?
算了,還是在這裡結束吧……
於是,通過這篇嚴肅正經的教程,我們學會了使用Python進行簡單圖像處理的方法,更get到一項實用的神技:自動生產表情包。
最重要的是,老夫經常說的"信不信我分分鐘批量做你大堆的表情包",終於成為現實了……對此,我想說,完了我愛上了Python!因為Python也太好玩了,方向太多了!
未來是人工智慧的時代,有理由相信 Python 將發揮更大的作用。那麼,如果想要追趕 Python 的熱潮,應該如何學習呢?
現在許多人在自學之外,都會選擇報名實訓班作為輔助。在這裡,我推薦下CSDN學院出品《Python全棧工程師》,通過4個月的系統學習,目標是成為優秀的Python工程師(不是套路,僅為推薦)。
因為學習任何一種編程語言,你都需要專業的導師、系統的課程、實戰演練項目和高質量學習輔導,這不僅能幫助你節省大量時間,更能保證不會半途而廢!
聯繫 CSDN 學院小姐姐,獲取一對一專屬服務
(包括:IT 職場規劃服務/專屬折扣)
為什麼推薦CSDN學院?
因為CSDN學院不僅滿足以上所有的必備選擇條件,更重要的是,它保證你的學習效果,無論是從班主任督促學還是助教隨時答疑服務,無論是師資還是課程大綱部分,它都會以最專業最貼心的方式呈現,滿足你對學習的任何需求,以及幫你把控自制力。
課程專為下列人群量身打造:
學生/小白:如果你自制力強、有上進心,想通過學習來改變現狀,那麼我們讓你點亮高薪人生
轉行必備:業餘時間掌握 Python 開發技能,輕鬆實現職業轉化
立志做全棧工程師:立志做全能型人才,一人搞定前後端!
網路運維轉型開發:從事傳統網路運維工作,想要轉型,那你適合學Python。
準備進軍AI領域:Python 是人工智慧首選開發語言,搶佔未來,成為 AI 人才,必學 Python。
成為Python全棧工程師,永遠都不晚,預祝成功~
聯繫 CSDN 學院小姐姐,獲取一對一專屬服務
(包括:IT 職場規劃服務/專屬折扣)
※經過 180 年的訓練,OpenAI 在 DOTA 2 上完虐人類!
※中國移動支付用戶約 8.9 億;諾基亞將發布X5;魅族黃章:楊柘未離職,擔任 CSO
TAG:CSDN |