0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎么用Python制作自己的專屬表情包?

馬哥Linux運(yùn)維 ? 來源:楊湘祁 ? 作者:電子發(fā)燒友 ? 2019-03-01 17:31 ? 次閱讀

作為一個(gè)數(shù)據(jù)分析師,應(yīng)該信奉一句話——"一圖勝千言"。不過這里要說的并不是數(shù)據(jù)可視化,而是一款全民向的產(chǎn)品形態(tài)——表情包?。。?!

表情包不僅僅是一種符號(hào),更是一種文化,是促進(jìn)社交乃至社會(huì)發(fā)展的動(dòng)力之一,就像懶。

我們堅(jiān)持認(rèn)為,一張優(yōu)秀的表情包,應(yīng)該是一幅藝術(shù)品,是那忽如一夜春風(fēng)來的靈感爆發(fā),是那嘈嘈切切錯(cuò)雜彈的情思激蕩,是那直掛云帆濟(jì)滄海的壯志豪情,是那一覽天下眾山小的榮耀勝利,是不可以容忍碼農(nóng)用其慣有的形式固定、流程固定、毫無美感、毫無藝術(shù)的變幻和驚喜的直線思維解構(gòu)。

然而,在生產(chǎn)表情包的過程中,如果只是機(jī)械地把圖片導(dǎo)進(jìn)PS --> 改文字--> 導(dǎo)出,那也太low了,所以還是把這些很low的機(jī)械化的重復(fù)動(dòng)作交給程序來做吧。

之前一直以為圖像的自動(dòng)處理,要靠JavaScript腳本控制PS或者AI;后來發(fā)現(xiàn)Python其實(shí)也可以做一些簡(jiǎn)單的圖像處理,雖然可能比不上 MATLAB 強(qiáng)大。

于是對(duì)于圖像處理,復(fù)雜的部分依然在PS或者AI中人工完成,簡(jiǎn)單的處理就可以用Python程序完成。

在開工之前,先讓我們瞻仰膜拜一下表情包界里程碑式的人物,感謝他們大力推動(dòng)了表情包在歷史潮流中的顯著進(jìn)步,他們的英名將長(zhǎng)期被人民大眾津津樂道,他們的音容笑貌將在人們的日常社交中經(jīng)久不衰,他們的卓越貢獻(xiàn)將永遠(yuǎn)鐫刻于表情包史的豐碑上!

(如果表情可以收版權(quán)費(fèi)的話,那就不用辛辛苦苦地去打球、拍戲、播音了……)

素材準(zhǔn)備

這里我們以網(wǎng)絡(luò)上流傳最廣的金館長(zhǎng)表情為中心,以萌萌噠的熊貓頭作為背景,底下加上文字就能構(gòu)成一張表情包。

然后用PS處理一下圖片大小,模板大小設(shè)為250*250,表情裁剪一下白邊。

圖片疊加

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

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

這樣就會(huì)看到合成的圖片了:

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

文字疊加

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

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

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

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

你還可以導(dǎo)入多張表情,以及多個(gè)文本臺(tái)詞,這樣就可以大規(guī)模批量自動(dòng)生產(chǎn)表情包了……

問題升華

你以為到這里就結(jié)束了嗎?too young啊!請(qǐng)童鞋們思考這個(gè)問題:

  1. 表情包下留白的空間是有限的

  2. 中文和英文以及標(biāo)點(diǎn)符號(hào)占據(jù)的空間不同

  3. 如果文本太長(zhǎng),就需要換行;可是如果行太多,圖片就放不下

因此,當(dāng)你腦中突然閃現(xiàn)出一句既包含中文也有英文還有N多標(biāo)點(diǎn)符號(hào)以增強(qiáng)語(yǔ)氣的臺(tái)詞時(shí),怎么設(shè)計(jì)一個(gè)算法,用來尋找合適的字號(hào)大小,文本插入位置,文本在哪些地方換行,使文本能在有限空間居中展示,而且還要滿足一定的觀感呢?

算了,還是在這里結(jié)束吧……

于是,通過這篇嚴(yán)肅正經(jīng)的教程,我們學(xué)會(huì)了使用Python進(jìn)行簡(jiǎn)單圖像處理的方法,更get到一項(xiàng)實(shí)用的神技:自動(dòng)生產(chǎn)表情包。

最重要的是,老夫經(jīng)常說的"信不信我分分鐘批量做你大堆的表情包",終于成為現(xiàn)實(shí)了……對(duì)此,我想說,完了我愛上了Python!因?yàn)镻ython也太好玩了,方向太多了!


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    520

    瀏覽量

    53898
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4801

    瀏覽量

    84861

原文標(biāo)題:不要和會(huì)Python的斗圖之自動(dòng)生成表情

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    探秘定制鋰電池實(shí)體店:開啟專屬電力新體驗(yàn)

    定制鋰電池實(shí)體店為我們提供了一種全新的電池選擇方式,讓我們能夠擺脫傳統(tǒng)鋰電池的束縛,擁有一款真正符合自己需求的專屬電力解決方案。如果你正在為電池的適配性、性能等問題煩惱,不妨走進(jìn)身邊的定制鋰電池實(shí)體店,開啟屬于你的專屬電力新體驗(yàn)
    的頭像 發(fā)表于 01-15 17:06 ?56次閱讀
    探秘定制鋰電池實(shí)體店:開啟<b class='flag-5'>專屬</b>電力新體驗(yàn)

    NE555制作點(diǎn)焊機(jī)

    NE555制作點(diǎn)焊機(jī),電路簡(jiǎn)單,容易制作。需要一個(gè)12v的鉛酸蓄電池。實(shí)際焊接效果很好。
    發(fā)表于 11-08 15:05 ?5次下載

    使用Python搭建簡(jiǎn)易本地http服務(wù)器,升級(jí)WIPI模組

    文件夾,同時(shí)復(fù)制升級(jí)到該文件夾下 4 WIN+R打開cmd,打開命令行,執(zhí)行命令(如圖,根據(jù)自己建立的文件夾來輸入路徑) F: cd httpserver 如果Python
    的頭像 發(fā)表于 09-29 15:38 ?657次閱讀
    使用<b class='flag-5'>Python</b>搭建簡(jiǎn)易本地http服務(wù)器,升級(jí)WIPI模組

    第二屆大會(huì)回顧第25期 | OpenHarmony上的Python設(shè)備應(yīng)用開發(fā)

    Python以其簡(jiǎn)單、易學(xué)和功能強(qiáng)大而聞名,有著廣泛的用戶群體。采用Python開發(fā)有助于降低OpenHarmony的學(xué)習(xí)門檻。如何在OpenHarmony上Python開發(fā)設(shè)備應(yīng)用
    的頭像 發(fā)表于 08-27 11:53 ?748次閱讀
    第二屆大會(huì)回顧第25期 | OpenHarmony上的<b class='flag-5'>Python</b>設(shè)備應(yīng)用開發(fā)

    使用Python進(jìn)行Ping測(cè)試

    )請(qǐng)求,然后等待目標(biāo)主機(jī)返回響應(yīng),從而測(cè)量網(wǎng)絡(luò)的延遲和丟情況。隨著Python編程語(yǔ)言的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)工程師開始使用Python
    的頭像 發(fā)表于 08-12 17:56 ?562次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行Ping測(cè)試

    python寫驗(yàn)證環(huán)境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗(yàn)如何。
    的頭像 發(fā)表于 07-24 09:38 ?582次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗(yàn)證環(huán)境cocotb

    如何在UART上制作一個(gè)偵聽器來接收數(shù)據(jù)?

    我想在 UART 上制作一個(gè)偵聽器來接收數(shù)據(jù)。 我該怎么做?有沒有任何形式的假多線程?
    發(fā)表于 07-19 09:54

    如何實(shí)現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會(huì)看到一些 Python 實(shí)現(xiàn)文件復(fù)制的特殊方法。下面我們開始學(xué)習(xí)這九種不同的方法來實(shí)現(xiàn)
    的頭像 發(fā)表于 07-18 14:53 ?448次閱讀

    曠視AI開源新突破:上傳照片即可生成表情視頻!

    為了展示其泛化性,MegActor甚至可以將VASA中的人物肖像和視頻組合生成,得到生動(dòng)的表情視頻。即使與阿里EMO的官方案例相比,MegActor也能生成近似的效果。
    的頭像 發(fā)表于 07-12 11:20 ?412次閱讀
    曠視AI開源新突破:上傳照片即可生成<b class='flag-5'>表情</b><b class='flag-5'>包</b>視頻!

    pycharm進(jìn)行python爬蟲的步驟

    以下是使用PyCharm進(jìn)行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個(gè)流行的Python集成開發(fā)環(huán)境
    的頭像 發(fā)表于 07-11 10:11 ?906次閱讀

    安裝依賴的Python軟件時(shí)報(bào)錯(cuò)如何解決?

    安裝依賴的 Python 軟件,出現(xiàn)了如下錯(cuò)誤,請(qǐng)問如何解決,謝謝! Command \"E:/msys32/mingw32/bin/python2.7.exe E:/msys32
    發(fā)表于 06-26 07:32

    機(jī)器人動(dòng)態(tài)表情模塊JZRF-----江智公司開始全面對(duì)外開放提供

    機(jī)器人動(dòng)態(tài)表情模塊江智公司開始全面對(duì)外開放提供江智機(jī)器人公司在多年單一靜態(tài)表情板基礎(chǔ)上,通過近1年左右的動(dòng)態(tài)表情變化的研究實(shí)際測(cè)試,現(xiàn)正式對(duì)外提供不同規(guī)格(也可按客戶規(guī)格定制)表情板結(jié)
    的頭像 發(fā)表于 06-19 08:14 ?290次閱讀
    機(jī)器人動(dòng)態(tài)<b class='flag-5'>表情</b>模塊JZRF-----江智公司開始全面對(duì)外開放提供

    ESP32下如何加自定義Python庫(kù)?

    我看官方有提供Micropython的bin文件,但我想根據(jù)自己外設(shè)擴(kuò)充一下Python庫(kù),這個(gè)應(yīng)該從哪里入手? 之前做過RTT系統(tǒng)的python庫(kù)擴(kuò)充,RTT有提供Micropython的源代碼,直接在里面加
    發(fā)表于 06-18 06:27

    請(qǐng)問可以利用RT-Thread修改屬于自己的開發(fā)板?

    導(dǎo)致工程用起來很別扭 所以我想了解,是否有教程有說明怎么制作屬于自己的板卡的硬件呢 例如圖片上面說明的,我的板子是串口4,但是我不想每次都得修改一次。所以是否有說明怎么修改這個(gè)配置的呢
    發(fā)表于 02-26 08:19

    如何制作自己的Arduino電容計(jì)

    在這個(gè)項(xiàng)目中,您將學(xué)習(xí)如何制作自己的Arduino電容計(jì)(測(cè)量電容器的值,范圍從pF到1000的uF)。一般來說,電子愛好者喜歡設(shè)計(jì)自己的小工具而不是購(gòu)買。在這個(gè)項(xiàng)目中,我們使用兩種電容測(cè)量方法,即
    的頭像 發(fā)表于 02-25 15:10 ?1655次閱讀
    如何<b class='flag-5'>制作</b><b class='flag-5'>自己</b>的Arduino電容計(jì)