一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

人工智能和機(jī)器人研究院 ? 來源:未知 ? 作者:steve ? 2018-04-20 14:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

我們堅持認(rèn)為,一張優(yōu)秀的表情包,應(yīng)該是一幅藝術(shù)品,是那忽如一夜春風(fēng)來的靈感爆發(fā),是那嘈嘈切切錯雜彈的情思激蕩,是那直掛云帆濟(jì)滄海的壯志豪情,是那一覽天下眾山小的榮耀勝利,是不可以容忍碼農(nóng)用其慣有的形式固定、流程固定、毫無美感、毫無藝術(shù)的變幻和驚喜的直線思維解構(gòu)。然而,在生產(chǎn)表情包的過程中,如果只是機(jī)械地把圖片導(dǎo)進(jìn)PS --> 改文字--> 導(dǎo)出,那也太low了,所以還是把這些很low的機(jī)械化的重復(fù)動作交給程序來做吧。

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

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

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

素材準(zhǔn)備

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

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

圖片疊加

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

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

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

這張圖片下方還有一截留白,那是給我們最后一步添加文字用的。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)點符號以增強(qiáng)語氣的臺詞時,怎么設(shè)計一個算法,用來尋找合適的字號大小,文本插入位置,文本在哪些地方換行,使文本能在有限空間居中展示,而且還要滿足一定的觀感呢?

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

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

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

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

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86708
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    產(chǎn)學(xué)研融合!思爾芯數(shù)字EDA工具走進(jìn)北航課堂

    EDA工具的創(chuàng)新成果。通過深入淺出的講解與沉浸式學(xué)習(xí)中,同學(xué)們深入理解了思爾芯數(shù)字EDA工具在芯片設(shè)計中的關(guān)鍵作用。培訓(xùn)聚焦思爾芯的PegaSim芯神馳軟件仿真工具。
    的頭像 發(fā)表于 05-26 09:45 ?903次閱讀
    產(chǎn)學(xué)研融合!思爾芯數(shù)字EDA工具走進(jìn)北航<b class='flag-5'>課堂</b>

    門老師教你快速看懂電子電路圖

    本文從最基本的電容電阻開講,包含模電數(shù)電,以及部分電氣知識點,深入淺出。 資料介紹: 全文共分7課,以老師授課和師生交流的形式系統(tǒng)地介紹了電子電路識圖方面的基本知識和技能,包括電路圖的基本概念和要素
    發(fā)表于 05-16 15:17

    程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)

    的地址)出發(fā),采用推導(dǎo)的方式,深入淺出的分析了廣大C程序員學(xué)習(xí)和開發(fā)中遇到的難點。 2. 從方法論的高度對C語言在數(shù)據(jù)結(jié)構(gòu)和算法方面的應(yīng)用進(jìn)行深入講解和闡述。 3. 講解了絕大多數(shù)C程序員開發(fā)
    發(fā)表于 05-13 16:45

    深入淺出解析低功耗藍(lán)牙協(xié)議棧

    深入Bluetooth LE協(xié)議棧各個組成部分之前,我們先看一下Bluetooth LE協(xié)議棧整體架構(gòu)。 如上圖所述,要實現(xiàn)一個Bluetooth LE應(yīng)用,首先需要一個支持Bluetooth
    的頭像 發(fā)表于 04-09 14:49 ?520次閱讀
    <b class='flag-5'>深入淺出</b>解析低功耗藍(lán)牙協(xié)議棧

    《零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》

    《零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》是一本為普通人量身打造的AI開發(fā)指南。它不僅深入淺出地講解了Agent的概念和發(fā)展,還通過詳細(xì)的工具介紹和實戰(zhàn)案例,幫助讀者快速掌握
    發(fā)表于 03-18 12:03

    Python中的迭代器與生成

    Python迭代器與生成器 列表生成式 列表生成式也叫做列表推導(dǎo)式,它本身還是列表,只不過它是根據(jù)我們定義的規(guī)則來生成一個真實的列表。 ?
    的頭像 發(fā)表于 02-20 10:43 ?386次閱讀

    深居AutoCAD二次開發(fā)

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

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

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

    使用Python進(jìn)行串口通信的案例

    當(dāng)然!以下是一個使用Python進(jìn)行串口通信的簡單示例。這個示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫,這是一個非常流行的用于串口通信的Python庫。 首先,你
    的頭像 發(fā)表于 11-22 09:11 ?1456次閱讀

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?1029次閱讀
    如何<b class='flag-5'>自動</b><b class='flag-5'>生成</b>verilog代碼

    如何使用 Llama 3 進(jìn)行文本生成

    torch 使用Hugging Face的pipeline進(jìn)行文本生成。 python復(fù)制代碼 from tr
    的頭像 發(fā)表于 10-27 14:21 ?1083次閱讀

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

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

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

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

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

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

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

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