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

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

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

【大神課堂】深入淺出教你進(jìn)行Python自動(dòng)生成表情包

人工智能和機(jī)器人研究院 ? 來(lái)源:未知 ? 作者:steve ? 2018-04-20 14:18 ? 次閱讀

作為一個(gè)數(shù)據(jù)分析師,應(yīng)該信奉一句話----"一圖勝千言"。不過(guò)這里要說(shuō)的并不是數(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)來(lái)的靈感爆發(fā),是那嘈嘈切切錯(cuò)雜彈的情思激蕩,是那直掛云帆濟(jì)滄海的壯志豪情,是那一覽天下眾山小的榮耀勝利,是不可以容忍碼農(nóng)用其慣有的形式固定、流程固定、毫無(wú)美感、毫無(wú)藝術(shù)的變幻和驚喜的直線思維解構(gòu)。然而,在生產(chǎn)表情包的過(guò)程中,如果只是機(jī)械地把圖片導(dǎo)進(jìn)PS --> 改文字--> 導(dǎo)出,那也太low了,所以還是把這些很low的機(jī)械化的重復(fù)動(dòng)作交給程序來(lái)做吧。

之前一直以為圖像的自動(dòng)處理,要靠JavaScript腳本控制PS或者AI;后來(lái)發(fā)現(xiàn)Python其實(shí)也可以做一些簡(jiǎn)單的圖像處理,雖然可能比不上MATLAB強(qiáng)大。于是對(duì)于圖像處理,復(fù)雜的部分依然在PS或者AI中人工完成,簡(jiǎn)單的處理就可以用Python程序完成。

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

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

素材準(zhǔn)備

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

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

圖片疊加

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

from PIL import Image, ImageDraw, ImageFontimg = Image.open(".ackground.jpg")jgz = Image.open(".jgz.jpg")img.paste(jgz,(73,42))img.show()

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

這張圖片下方還有一截留白,那是給我們最后一步添加文字用的。come on,魔性的笑容已經(jīng)呈現(xiàn),接下來(lái)就是最后一擊,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)心毫無(wú)波動(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)表情包了……

問(wèn)題升華

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

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

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

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

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

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

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

最重要的是,老夫經(jīng)常說(shuō)的"信不信我分分鐘批量做你大堆的表情包",終于成為現(xiàn)實(shí)了……

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

    關(guān)注

    56

    文章

    4801

    瀏覽量

    84860
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深居AutoCAD二次開(kāi)發(fā)

    深居AutoCAD二次開(kāi)發(fā),net版
    發(fā)表于 01-06 14:12 ?0次下載

    深入淺出RISC-V調(diào)試

    JTAG主機(jī)可以同時(shí)對(duì)多個(gè)JTAG從機(jī)進(jìn)行調(diào)試,這通過(guò)JTAG掃描鏈(JTAG Scan Chain)完成,如圖1所示。 圖1 一個(gè)JTAG主機(jī)連接多個(gè)JTAG從機(jī) JTAG內(nèi)部有一個(gè)TAP(Test
    發(fā)表于 11-28 22:00

    MR30系列IO——工業(yè)自動(dòng)化的智慧紐帶

    工業(yè)生產(chǎn)的智能化與高效化提供了堅(jiān)實(shí)的支撐。明達(dá)技術(shù)將為您深入淺出地介紹這三種模塊的基本概念、功能特性及其應(yīng)用場(chǎng)景,特別聚焦于MR30系列IO模塊的獨(dú)特之處
    的頭像 發(fā)表于 10-10 13:27 ?248次閱讀
    MR30系列IO——工業(yè)<b class='flag-5'>自動(dòng)</b>化的智慧紐帶

    三行代碼完成生成式AI部署

    OpenVINO2024.2版本跟之前版本最大的不同是OpenVINO2024.2分為兩個(gè)安裝分別是基礎(chǔ)生成式AI支持,新發(fā)布的GenAI開(kāi)發(fā)包支持C++與
    的頭像 發(fā)表于 08-30 16:49 ?433次閱讀
    三行代碼完成<b class='flag-5'>生成</b>式AI部署

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

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

    深入淺出系列之代碼可讀性

    原創(chuàng)聲明:該文章是個(gè)人在項(xiàng)目中親歷后的經(jīng)驗(yàn)總結(jié)和分享,如有搬運(yùn)需求請(qǐng)注明出處。 這是“深入淺出系列”文章的第一篇,主要記錄和分享程序設(shè)計(jì)的一些思想和方法論,如果讀者覺(jué)得所有受用,還請(qǐng)“一鍵三連
    的頭像 發(fā)表于 08-09 16:00 ?279次閱讀

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

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

    用pycharm進(jìn)行python爬蟲(chóng)的步驟

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

    使用Python進(jìn)行自然語(yǔ)言處理

    在探討使用Python進(jìn)行自然語(yǔ)言處理(NLP)的廣闊領(lǐng)域時(shí),我們首先需要理解NLP的基本概念、其重要性、Python在NLP中的優(yōu)勢(shì),以及如何通過(guò)Python實(shí)現(xiàn)一些基礎(chǔ)的NLP任務(wù)
    的頭像 發(fā)表于 07-04 14:40 ?476次閱讀

    深入淺出談TDR阻抗測(cè)試

    Chrent為什么要測(cè)阻抗?計(jì)算機(jī)、通信系統(tǒng)、視頻系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)等領(lǐng)域的數(shù)字系統(tǒng)開(kāi)發(fā)人員正面臨著越來(lái)越快的時(shí)鐘頻率和數(shù)據(jù)速率,隨之,信號(hào)完整性變得越來(lái)越重要。在當(dāng)前的高工作速率下,影響信號(hào)上升時(shí)間、脈寬、時(shí)序、抖動(dòng)或噪聲內(nèi)容的任何事物都會(huì)影響整個(gè)系統(tǒng)的性能和可靠性。為保證信號(hào)完整性,必須了解和控制信號(hào)經(jīng)過(guò)的傳輸環(huán)境的阻抗。阻抗不匹配和不連續(xù)會(huì)導(dǎo)致反射,增加系
    的頭像 發(fā)表于 06-06 08:28 ?6211次閱讀
    <b class='flag-5'>深入淺出</b>談TDR阻抗測(cè)試

    深入淺出帶你搞懂-MOSFET柵極電阻

    一、MOSFET簡(jiǎn)介MOSFET是金屬(metal)—氧化物(oxide)—半導(dǎo)體(semiconductor)場(chǎng)效應(yīng)晶體管,屬于電壓控制電流型元件,是開(kāi)關(guān)電路中的基本元件,其柵極(G極)內(nèi)阻極高。以N溝道增強(qiáng)型為例,其結(jié)構(gòu)為在一塊濃度較低的P型硅上擴(kuò)散兩個(gè)濃度較高的N型區(qū)作為漏極和源極,半導(dǎo)體表面覆蓋二氧化硅絕緣層并引出一個(gè)電極作為柵極。由于mos管本身的
    的頭像 發(fā)表于 05-09 08:10 ?2.3w次閱讀
    <b class='flag-5'>深入淺出</b>帶你搞懂-MOSFET柵極電阻

    【大語(yǔ)言模型:原理與工程實(shí)踐】探索《大語(yǔ)言模型原理與工程實(shí)踐》

    的未來(lái)發(fā)展方向進(jìn)行了展望,包括跨領(lǐng)域、跨模態(tài)和自動(dòng)提示生成能力方向,為讀者提供了對(duì)未來(lái)技術(shù)發(fā)展的深刻見(jiàn)解。《大語(yǔ)言模型原理與工程實(shí)踐》是一本內(nèi)容豐富、深入淺出的技術(shù)書(shū)籍。它不僅為讀者提
    發(fā)表于 04-30 15:35

    如何使用Python生成四位隨機(jī)數(shù)字

    為了實(shí)現(xiàn)這些目標(biāo),Python 為我們提供了random() 模塊。random() 是一個(gè)內(nèi)置的 Python 模塊,用于生成隨機(jī)數(shù)。
    的頭像 發(fā)表于 04-15 12:47 ?710次閱讀

    怎么理解負(fù)頻率呢?射頻人眼中的負(fù)頻率

    說(shuō)實(shí)話,我對(duì)負(fù)頻率這個(gè)概念,也是有點(diǎn)凌亂。不過(guò),最近不是正在看“深入淺出通信原理”嘛,看了一些相關(guān)概念。
    的頭像 發(fā)表于 03-05 16:10 ?3405次閱讀
    怎么理解負(fù)頻率呢?射頻人眼中的負(fù)頻率

    深入淺出理解三極管

    原文來(lái)自原創(chuàng)書(shū)籍《硬件設(shè)計(jì)指南 從器件認(rèn)知到手機(jī)基帶設(shè)計(jì)》: 本小節(jié)介紹下三極管的特性,清晰易懂,使用通俗的水流模型加強(qiáng)對(duì)三極管的原理記憶,一定比課堂上講的要形象的多,各位同學(xué)要學(xué)會(huì)類比的方法來(lái)加深
    的頭像 發(fā)表于 02-23 08:41 ?726次閱讀
    <b class='flag-5'>深入淺出</b>理解三極管