6行Python代碼給你一個不是單身的自己!

祝你過年回家玩得High~!┢┦aΡpy ?^_^?

在過一周就要放假了,怎麼樣?激不激動?

可能你的實際情況是這樣的:

對於單身的你可能還會這樣:

其實你的內心可能是這樣的:

好吧!對於一個程序猿來說,我們需要的是6行Python代碼,為自己構造一個和諧、安靜的環境。

第一步:準備好兩站照片,其中一張照片背景是透明的(這裡美女是)

圖片背景

透明背景的圖片

第二步:運行程序

第三步:展示成果,老子也是有女朋友的人!

哈哈哈哈哈~!有沒有羨慕嫉妒恨!

其實Python的代碼十分的簡單,運用PIL庫進行圖片的合成。

如何安裝

pip install Pillow

簡單的解析

相關API見 Pillow (PIL Fork) 5.1.0.dev0 documentation

當需要將一張有透明部分的圖片粘貼到一張底片上時,為保證有透明的效果,將RGBA的的Alpha通道提取出來做為mask傳入。

名詞解釋

RGBA:RGBA是代表Red(紅色) Green(綠色) Blue(藍色)和 Alpha的色彩空間,也就是透明度/不透明度。雖然它有的時候被描述為一個顏色空間,但是它其實僅僅是RGB模型的附加了額外的信息。

Alpha通道:是一個8位的灰度通道,該通道用256級灰度來記錄圖像中的透明度信息,定義透明、不透明和半透明區域,其中白表示不透明,黑表示透明,灰表示半透明。

核心的就是這個函數:

Image.paste(im, box=None, mask=None)

將另一個圖像粘貼到此圖像中。 box參數可以是左上角的2元組,也可以是定義左上角、右下角像素坐標的4元組,也可以是None(與(0,0)相同)。如果給出了一個4元組,貼圖的大小必須與該區域的大小相匹配。

如果給出掩碼,則此方法僅更新由掩碼指示的區域。您可以使用「1」,「L」或「RGBA」圖像(在後一種情況下,alpha band用作蒙版)。在掩碼是255的情況下,給定的圖像被原樣複製。在掩碼為0的情況下,當前值被保存。中間值將兩個圖像混合在一起,包括他們的Alpha通道。

參數:

  • im:源圖像或像素值(整數或元組)。
  • box:一個可選的4元組賦予區域粘貼。如果使用2元組,則將其視為左上角。如果省略或無,源被粘貼到左上角。如果圖像是作為第二個參數給出的,並且沒有第三個參數,則該框默認為(0,0),第二個參數被解釋為蒙板圖像。
  • mask:一個可選的掩碼圖像。

最後

如你需要詳細的代碼,請關注微信公眾號:學點編程吧,發送:piclove獲得。


推薦閱讀:

哪裡能找到 Python 視頻教程地址?
【精心解讀】關於Jupyter Notebook的28個技巧
遲來的第一篇文章。
透過數據看 Github
如何理解python大法好?

TAG:Python | 單身 | Python教程 |