如何用python繪製一系列三維的逗比風格表情包

2021-03-02 飛總聊IT

文章轉載自公眾號  Python愛好者社區 , 作者 盛光曉

表情包是當代社交生態中的戰略性武器,既託起了友情的小船,又浮起了愛情的巨輪,還載起了親情的航空母艦。在一個又一個寧靜又不乏躁動的夜晚,此起彼伏的「老鐵666」、「頂你上去」掀起了一陣又一陣的波瀾。當你和別人鬥圖鬥得天昏地暗、地動山搖的時候,你有沒有想過,如果有一個三維的逗比表情包,你就可以對別人進行360度的全方位無死角嘲諷了!想到這裡,你是不是由衷地在心裡發出了豪爽而邪惡的笑聲?

而現在,python就可以滿足你這一不可告人的願望!照例,我們用到的還是matplotlib的三維渲染。首先,我們要有一張表情包的圖片,最好是長度是寬度的兩倍,這樣的話,平面圖片映射到球體上以後,變形會相對小一些。如果原始圖片不符合要求,可以在畫圖工具裡面重新調整大小,像下圖這樣:然後,我們重新生成一張長圖,長度是上圖的六倍,將上圖的表情橫著擺6個,代碼和圖片如下:
im=Image.open(r'origin.png')   width,height=im.size   result=Image.new(im.mode,(width*6,height))for i in range(6):            result.paste(im,box=(i*width,0))   result.save('result.png')

接著,就是確定圖片的顯示範圍,為了避免圖片發生嚴重的變形,需要將圖片映射到「低緯度」地區,我設定的是-pi/8到pi/8的範圍。
#1128指的是長圖的長度u = np.linspace(0, 2*pi, 1128 * 1)#94指的是長圖的寬度v = np.linspace(-pi / 8, pi / 8, 94 * 1)

x=a*np.outer(np.cos(u),np.cos(v))y=a*np.outer(np.sin(u),np.cos(v))z=b*np.outer(np.ones(np.size(u)),np.sin(v))

下文的最終繪製過程中,我們需要用到plot_surface函數,而該函數中有一個參數是facecolors,這個參數的意思就是為橢球的表面設置RGB值,我們就要在圖片的各個像素點的RGB值和橢球表面的點之間建立一一對應的關係。代碼如下:
bm=Image.open(r'result.png')bm=np.array(bm)

colors=[]

for i in range(bm.shape[1]-1,-1,-1): item=[]for j in range(bm.shape[0]-1,-1,-1): color="#{}{}{}".format(str.zfill(str(hex(bm[j][i][0]))[2:],2),str.zfill(str(hex(bm[j][i][1]))[2:],2),str.zfill(str(hex(bm[j][i][2]))[2:],2)) item.append(color) colors.append(item)

最後,colors數組裡面存儲了所有橢球上面的點的RGB值。將colors賦值給facecolors就可以完成最後的繪製。


掃二維碼加飛總微信



飛總星球學習職場升職打怪

相關焦點

  • 抖音超火的小辮子表情包來了,符號+兩根小辮子表情包
    表情包 • 可以長按發送後添加
  • 用Python做一個哆啦A夢分身
    今天Python來實現一個簡單的哆啦A夢分身術,看看python是如何實現影分身之術。要達到影分身的效果,需要一個背景圖片和一個前景圖片。我們以背景圖片為基礎,然後不斷的在背景圖片上添加前景圖片,從而達到影分身的效果。這裡我們採用python內置的turtle庫來實現這一效果。
  • 新出的貼圖表情我教你用啊!
    以往的表情包只要把頭像壁紙帶給大家就好,這回自拍貼圖配置加強,我單開一貼教教大家如何在你的照片中加入冷兔寶寶自拍貼圖!①首先當然是你要下載好這套表情!!還有自拍表情中也可以用,拍出動態表情,帶冷兔寶寶的!
  • 乾貨 | 用手機拍出驚豔的三維建模,你也可以
    之前分享了一篇關於用手機建模的文章 用手機玩轉Smart3D驚豔三維建模
  • 你用的表情包都是從這來的~網絡表情符號誕生記送給你
    ,是不是信手拈來,用的不要太爽!但是,你知道世界上第一個網絡表情符號是啥麼?有人說,emoji不過是年輕人聊天愛用的小玩意兒,會讓人退化到黑暗的文盲時期。但這個億萬人頻繁使用的表情,卻填補了文字表達的乏力。
  • Emoji 新增69個表情包!看到「高低眉」我不厚道的笑了...
    現在手機上與朋友聊天,一不小心對話就會變成表情包PK大賽(來自編輯部群裡的圖戰)表情包屆大咖
  • 廣告三維?廣告三維?nononono……只是歌雅的一次練習
    如今三維設計被越來越多的使用,因其對於那些無需觸摸實物也能作出購買決定的商品來說,三維視頻廣告更是受到了諸多品牌方的歡迎。
  • 碼住這些,迅速成為表情管理大師
    表情管理是一種十分重要的非語言交往方法,能夠很快塑造一個人在他人眼中的形象氣質性格。而對於一些真性情者們,常常因為不注意表情管理而被做成表情包,苦不堪言。但其實適合的表情對任何人都重要,可以展現我們最美的一面。下面小陽將不同階段的表情包偷偷截了圖,快來看看有沒有戳中你的庫存叭。表情管理也是一門學問,那麼如何拿到這門課的高分呢?
  • 表情包將改寫攝影史?它已經進入了博物館大門……
    以在很多方面成為了網際網路文化象徵的「表情包」為例,切魯將表情包現象追溯到杜尚為《蒙娜麗莎》添加了鬍子的百年前。大衛·霍維茨(David Horvitz)基於表情包而創作的藝術項目《241543903》也與上世紀六七十年代的概念實踐有很多共同點。
  • 【科技生活】人類第一個網絡表情符號的誕生……
    2003年,中國的網絡表情界悄然發生了一個變化——真人表情包開始流行。第一個走紅的真人表情,是當年的「小胖」同學。 小胖同學當初這個表情,據說是被老師偶然拍下並上傳到網上,然後引起了網友們的注意。在那之後,網友們通過自己的奇思妙想又引入了諸多元素。例如「還珠格格」系列、「一起來看流星雨」系列、「親切祝福」系列、「小男孩民國」系列等等。
  • 使用 tqdm 在 Python 應用中顯示進度 | Linux 中國
    當你下載一個大文件時,衡量進度的唯一方法就是檢查已經下載了多少:url = "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz"with httpx.stream("GET", url) as response:    total = int(response.headers["Content-Length"])
  • 誰是玩物志首屆「逗比自拍大賽」冠軍?名單馬上揭曉
    點擊題圖,立即購買嘿嘿,你們期待已久的玩物志首屆「逗比自拍大賽」已經在 8 月 15 日 24:00 正式截止投票,獲獎名單馬上要揭曉了
  • 單目攝像機測距(python+opencv)
    在網上看了幾天關於攝像頭標定和攝像頭焦距等原理的文章,然後通過這篇文章真正啟發了我:用python和opencv來測量目標到相機的距離  主要的測距的原理是利用相似三角形計算物體到相機的距離。
  • 清新日系風格如何調整?
    對於這種風格我們該如何去製作呢?這就是我們今天想要分享的內容。首先對於這種風格,我們需要去增加畫面整體的亮度與細節豐富程度,這樣才能形成輕盈的視覺感受,所以我們需要首先提高曝光、陰影和黑色色階:接著我們需要為畫面渲染一些色彩,我們一般可以選擇青色和粉色的組合,這種組合可以讓畫面看起來十分清新。
  • HYPEBEAST 獨家專訪森山大道談論其攝影風格以及對街拍盛行的看法
    作為攝影界的先驅者,森山大道以他獨特的拍攝風格聞名。自 1960 年代開始捕捉日本街景,森山大道早期的黑白影像描繪了東京的路人、異鄉人和日常景象,這些粗顆粒且高對比的影像反應了人們對日本戰後時期的態度和傳統價值。直到近年,森山大道才開始拍攝一系列彩色的數位照片,這些圖像呈現了他想傳達給世界對日本的新印象。
  • 「文青」李一舟 用逗比的心指揮科技男的神思——依文男神陪你過大年
    恩,我們從該怎麼拍照開始。鏡頭前,Dr.李表情略嚴肅,但我們一致認為他笑起來很好看,牙齒整齊潔白(牙膏廠家可以考慮下李博士哦)。在我們的讚美(吹捧)下,他自動開啟「哈哈哈」模式。正如他創立的匙悟科技公司所推出的產品,文藝小清新的外表,依託科技、智能、數據等各種小依不懂的高端軟硬體,為了幫人們得到更高質量的睡眠。
  • 電影風格照片,美得讓人嘆息
    單幀電影風格的照片,在當下很是流行。經過調色,配上字幕,添上黑色遮幅,一張照片就仿佛是出自某部投資數億的鴻篇巨製。LOFTER攝影師 木西.Saunato.LoFoTo 就嘗試著製作過電影風格的照片。他說,「詩意的人生、時間、片段如電影流過。」或許他就以這樣的方式,來紀念過去的一年又一年。
  • 如何實現一致的後期風格?
    一致的後期風格是建立可辨識品牌的關鍵。一名成熟的攝影師,不應該寄希望於碰運氣式的後期修圖,而應該有一致的流程,修出同樣風格的照片。
  • 如何通過後期控制照片風格——日系
    每人喜歡的風格各異,拍攝出來的照片風格也各不相同。手機後期在於學會分析照片,而分析照片後,你會發現其實後期的「風格」是條條大路通羅馬的。今天就先說說關於「日系風格」是如何通過後期調整出來的~「日系」的問題被問了不下百次了,其實這是一個很鬆散的分類,或許這種風格來源於日劇的調色,又或許因為許多小清新照片在日本拍成。
  • 怎樣用Vmate拍出想要的色彩
    大家在用Vmate拍視頻的時候可能會有這樣的感受,用手機拍攝出來的視頻比Vmate色彩鮮豔清晰。覺得只要是不夠鮮豔的畫面,都是「畫質不好」。今天S君為大家講一下如何鑑別拍攝器材的「畫質」。一般拍攝器材輸出的畫質由素材「解析度」和「寬容度」決定。