搜尋
首頁後端開發Python教學Python實作表情包的程式碼實例

本文主要介紹了使用Python進行簡單圖像處理的方法以及Python自動生產表情包的實例,具有很好的參考價值,下面跟著小編一起來看下吧

作為一個數據分析師,應該信奉一句話-「一圖勝過千言萬語。不過這裡要說的並不是數據視覺化,而是一款全民的產品形態──表情包! ! ! !

表情包不只是一種符號,更是一種文化-是促進社交甚至社會發展的動力之一,就像懶。我們堅持認為,一張優秀的表情包,應該是一幅藝術品,是那忽如一夜春風來的靈感爆發,是那嘈雜切切錯雜彈的情思激盪,是那直掛雲帆濟滄海的壯志豪情,是那一覽天下眾山小的榮耀勝利——是不可以容忍碼農用其慣有的形式固定、流程固定、毫無美感、毫無藝術的變幻和驚喜的直線思維解構。然而,在生產表情包的過程中,如果只是機械地把圖片導進PS——改文字——導出,那也太low了,所以還是把這些很low的機械化的重複動作交給程序來做吧。

之前一直以為映像的自動處理,要靠JavaScript腳本控制PS或AI;後來發現Python其實也可以做一些簡單的影像處理,雖然可能比不上MATLAB強大。於是對於影像處理,複雜的部分依然在PS或AI中人工完成,簡單的處理就可以用Python程式完成。

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

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

素材準備

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

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

圖片疊加

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

from PIL import Image, ImageDraw, ImageFont
img = Image.open(".\background.jpg")
jgz = Image.open(".\jgz.jpg")
img.paste(jgz,(73,42))
img.show()

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

#這張圖片下方還有一截留白,那是給我們最後一步加上文字用的。 come on,魔性的笑容已經呈現,接下來就是最後一擊,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()是往圖層輸入文字,所以可以不斷執行這條命令以在圖片中添加多層文字。

你還可以導入多張表情,以及多個文字台詞,這樣就可以大規模批量自動生產表情包了…

問題昇華

#你以為到這裡就結束了嗎? too young啊!請童鞋們思考這個問題:

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

  • 中文和英文以及標點符號佔據的空間不同

  • 如果文字太長,就需要換行;可是如果行太多,圖片就放不下

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

算了,還是在這裡結束吧…

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

最重要的是,老夫經常說的“信不信我分分鐘批量做你大堆的表情包”,終於成為現實了…

【相關推薦】

1. 特別推薦「php程式設計師工具箱」V0.1版本下載

2. Python免費影片教學

3. Python物件導向影片教學

#

以上是Python實作表情包的程式碼實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python:自動化,腳本和任務管理Python:自動化,腳本和任務管理Apr 16, 2025 am 12:14 AM

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

Python和時間:充分利用您的學習時間Python和時間:充分利用您的學習時間Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。