用Python打造你的專屬情人節賀卡,趕快發給TA浪漫一下吧
明天就是情人節了。這個情人節,註定是一個不能約會的情人節,但不能約會不代表不能浪漫。古人比我們出生早,那些浪漫的詩詞早都被他們挖掘一空,比詩詞我們肯定沒有機會了。好在我們還有Python,不然都不知道該如何表達浪漫。接下來,浪導教你製作一個浪漫的情人節專屬賀卡。
首先,準備一張你們的合影和一段深情的表白。浪導已經過了戀愛的年齡,照片和情話只好借用https://baijiahao.baidu.com/s?id=1658389297213946646&wfr=spider&for=pc裡面的內容。 侵刪。
原圖及製作完成後的賀卡放在一起,效果如下圖:
1. 處理照片
我選擇了這張圖片:
將人形的部分處理成純白色:
>>> import cv2
>>> import numpy as np
>>> from PIL import Image
>>> img = cv2.imread('d:\\photo.jpg')
>>> mask = np.zeros(img.shape[:2], np.uint8)
>>> size = (1, 65)
>>> bgd = np.zeros(size, np.float64)
>>> fgd = np.zeros(size, np.float64)
>>> rect = (1, 1, img.shape[1], img.shape[0])
>>> cv2.grabCut(img, mask, rect, bgd, fgd, 10, cv2.GC_INIT_WITH_RECT)
>>> mask2 = np.where((mask == 2) | (mask == 0), 1, 255)
>>> img = img.astype(np.int32)
>>> img *= mask2[:, :, np.newaxis]
>>> img[img>255] = 255
>>> img =img.astype(np.uint8)
>>> img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
>>> img = Image.fromarray(img, 'RGB')
>>> img.save('d:\\mask.jpg')
最後的結果:
稍微有點瑕疵,不要緊,這不影響後面的效果。
2. 生成詞雲
用wordcloud庫,可以很輕鬆的生成詞雲,首先,安裝wordcloud:
pip install wordcloud
安裝完成,就可以生成詞雲了:
>>> from wordcloud import WordCloud
>>> fp = open(r"d:\情話.txt", "r")
>>> text = fp.read()
>>> text
'春風十里,不及相遇有你;晴空萬里,不及心中有你。\n世人萬千種,浮雲莫去求;斯人若彩虹,遇上方知有。\n沒有電影電視劇的浪漫,不敢許你三生三世,只願給你兩廳三室。\n你可以把餘生交給我保管,可以霸佔我情話裡的每一句喜歡。\n青山不及你眉長,水清不似你目澈,跨過山水幾場雨,我一生只要一個你。\n我並沒有喜歡哪一種型別的人,如果我喜歡你,我喜歡的就只是你。\n春花,秋月,夏日清風,冬日暮雪,這些都很美,但唯有你的心裡,才是我想去的四季。\n世上最牢固的感情不是“我愛你”,而是“我習慣了有你”。彼此依賴,才是最深的相愛。\n你在身邊的時候,你就是整個世界;你不在身邊的時候,整個世界都是你。\n這世界上你或許不是最優秀的人,但我愛上你的時候,你就是我的全世界!\n遇見你是無意,認識你是天意,想著你是情意,不見你時三心二意,見到你便一心一意。\n我看那晚霞是紅的,因為它懷裡摟著個太陽。我想我的臉也該是紅的吧,因為我心裡住著你。'
>>> wordcloud=WordCloud(font_path="C:/Windows/Fonts/simfang.ttf", background_color="black",width=600,height=300,max_words=50).generate(text)
>>> image=wordcloud.to_image()
>>> image.save("d:\\wordcloud1.png")
結果如下:
wordcloud支援掩碼,可以利用前面處理好的圖片,生成指定形狀的詞雲:
>>> import numpy as np
>>> from PIL import Image
>>> mask_pic=numpy.array(Image.open(r"d:\mask.jpg"))
>>> wordcloud = WordCloud(font_path=r"C:\Windows\Fonts\simfang.ttf",mask=mask_pic).generate(text)
>>> image=wordcloud.to_image()
>>> image.save("d:\\wordcloud2.png")
結果為:
3. 生成賀卡
wordcloud不支援生成透明圖片,我們需要自己把圖片處理成透明:
>>> cloud_data = np.array(image)
>>> alpha = np.copy(could_data[:,:,0]) # 生成透明通道
>>> alpha[alpha>0] = 255 # 不是黑的地方設定為255
>>> new_image = Image.fromarray(np.dstack((cloud_data, alpha)))
最後使用PIL將兩個圖層進行合併:
>>> card = Image.open("d:\\photo.jpg")
>>> card = card.convert("RGBA")
>>> card.paste(new_cloud, (0,0), mask=new_cloud)
>>> card.save("d:\\card.png")
趕快發給女朋友浪漫一下吧:
相關文章
- 送你情人節(劫)專屬Python全套程式碼Python
- 給你的SpringBoot專案定製一個牛年專屬banner吧Spring Boot
- 今年的情人節,給心愛的她一個不一樣的禮物吧
- 520,解鎖開發者的專屬浪漫
- 情人節來了,教你個用 Python 表白的技巧Python
- 給你專案加個Mock吧Mock
- 2019情人節發微信朋友圈說說 情人節發微信朋友圈情人節句子
- 快來給你的寵物影片加個表情特效吧特效
- [應用案例]小程式來了,收錄屬於你的小程式,快來提交吧
- webpack4.x版本各種常見配置,快來打造屬於你自己的工作流吧(2Web
- 快端午了,用Python畫一盤粽子送給你Python
- 【遇見offer】微軟專場直播強勢來襲!快來領取你的專屬面試福利吧~微軟面試
- 給你的開源專案加一個綬帶吧
- 利用GPTs,打造你的專屬AI聊天機器人GPTAI機器人
- 區塊鏈的專業術語你知道嗎?趕快來收藏區塊鏈
- 耗時又繁重的SQL最佳化,以後就都交給TA吧!SQL
- AE/PR模板-浪漫情人節二維場景卡通人物動畫片頭動畫
- 聖誕節快到了,快來裝飾你的Mac電腦桌面吧!Mac
- 快來為你的 .NET 應用加個監控吧!
- 面試官:你給我說一下什麼是時間輪吧?面試
- 快過年了,用Python寫副春聯&福字送給你~Python
- 你專屬的程式設計師春節“大禮包”程式設計師
- 來開發一個wanandroid快應用吧NaNAndroid
- Vite為什麼快呢?快在哪?說一下我自己的理解吧Vite
- 面試官:小夥子,你給我簡單說一下RocketMQ 整合 Spring Boot吧面試MQSpring Boot
- YouGov:2/5的美國人會給伴侶買情人節禮物Go
- 你還在這樣寫SQL嗎?趕緊改改吧SQL
- 七夕情人節發微信紅包吉利數字 情人節發紅包什麼數字寓意好
- 8款適合網路情人節送禮的手機推薦 總有一款適合Ta
- 零基礎也能製作的節日祝福賀卡!看教程!
- 打造屬於你自己的instagram! 全棧專案(react + egg.js)全棧ReactJS
- 你說一下對Java中的volatile的理解吧Java
- 趕快發文章!!先佔個坑
- 揭秘淘寶搜尋API:打造你的專屬購物搜尋引擎!API
- 情人節分手,FreeNginx來了Nginx
- Python製作七夕表白例項專案-讓你的情人心動起來Python
- 2019情人節一個人QQ簽名 一個人的情人節傷感說說句子
- 心情不好的時候,用 Python 畫棵櫻花樹送給自己吧Python