自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五星紅旗國(guó)慶頭像制作教程來(lái)了

開發(fā) 前端
國(guó)慶節(jié)終于來(lái)了,最近有個(gè)五星紅旗半透明漸變頭像很火,在抖音里、微信群里都流行起來(lái)了。

大家好,我是才哥。

國(guó)慶節(jié)終于來(lái)了,最近有個(gè)五星紅旗半透明漸變頭像很火,在抖音里、微信群里都流行起來(lái)了。

那么,作為python玩家,是不是也要共享一下自己的力量,用python快速制作這樣的頭像呢?。?/p>

來(lái)吧,展示!

1. 原理簡(jiǎn)介

我們看到這樣的頭像,大致是紅旗透明度漸變?nèi)缓蟾采w在自己頭像上即可。

那么,我的思路大致是先通過(guò)紅旗圖片獲取和自己頭像尺寸一樣的區(qū)域,然后將這部分區(qū)域從左到右進(jìn)行透明度漸變?cè)鲩L(zhǎng),然后將這張圖片和頭像進(jìn)行融合,最終保存即可。

基于這個(gè)思路,結(jié)合之前《Python基礎(chǔ)模塊:圖像處理模塊@PIL(批量分類處理圖片及添加水印)?》里介紹的PIL庫(kù),我們大致可以將實(shí)現(xiàn)步驟拆分為如下幾步:

  • 讀取國(guó)旗和頭像照片 open
  • 截取國(guó)旗部分區(qū)域 crop
  • 從左到右透明度漸變 putpixel
  • 將區(qū)域粘貼到頭像 paste?+resize
  • 保存新頭像 save

既然明確了實(shí)現(xiàn)步驟,我們就開搞吧!

2. 實(shí)現(xiàn)步驟

大家記得實(shí)現(xiàn)準(zhǔn)備國(guó)旗和自己頭像照片到本地哦

后臺(tái) 回復(fù) 955?,在國(guó)慶?文件夾領(lǐng)取 國(guó)旗文件,或者文末添加作者微信? 回復(fù) 國(guó)慶 領(lǐng)取。

2.1. 讀取圖片

from PIL import Image

guoqi = Image.open('五星紅旗.png')
touxiang = Image.open('頭像.jpg')

圖片

五星紅旗

圖片

頭像

2.2. 截取區(qū)域

由于這里我的頭像是正方形,為了方便在粘貼透明漸變國(guó)旗時(shí)更方便,需要截取正方形區(qū)域。

x,y = guoqi.size

quyu = guoqi.crop((262,100, y+62,y-100))

圖片

五星紅旗(正方形)

2.3. 設(shè)置透明漸變

在PIL?庫(kù)中,getpixel((i, j))?表示獲取(i,j)?像素點(diǎn)的顏色值color?,同樣我們可以通過(guò)putpixel((i, j), color)?來(lái)對(duì)(i,j)像素點(diǎn)設(shè)置顏色。

而對(duì)應(yīng)color?來(lái)說(shuō),是包含四個(gè)參數(shù)的元組(R,G,B,alpha)?,分別是RGB?值和透明度,其中透明度255表示不透明,0表示100%透明。

了解以上這些知識(shí),我們就可以開始進(jìn)行透明度漸變的操作了。

本例最簡(jiǎn)單滿足需求的就是透明漸變從左到右透明度依次變高(參數(shù)值變?。?,考慮到從255變?yōu)? 且只能是整數(shù),這里由于微信頭像是900*900,所以我考慮的是每3個(gè)像素進(jìn)行一次透明度漸變,當(dāng)超過(guò)255之后則透明度為100%也就是對(duì)應(yīng)參數(shù)為0。

w,h = touxiang.size

quyu = quyu.resize((w,h))

for i in range(w):
for j in range(h):
color = quyu.getpixel((i, j))
alpha = 255-i//3
if alpha < 0:
alpha=0
color = color[:-1] + (alpha, )
quyu.putpixel((i, j), color)

圖片

透明漸變

2.4. 粘貼到頭像并保存?

需要注意粘貼的時(shí)候要保留透明背景,否則就不好玩了,等于直接全覆蓋

touxiang.paste(quyu,(0,0),quyu)
touxiang.save('五星紅旗半透明漸變頭像.png')

圖片

五星紅旗國(guó)慶頭像

當(dāng)然,我們還可以用別的透明漸變的方式,比如左上角到右下角之類的,具體這里不展開演示了,感興趣的可以直接負(fù)責(zé)完整代碼自己測(cè)試玩玩!

3. 完整代碼

from PIL import Image


guoqi = Image.open('五星紅旗.png')
touxiang = Image.open('頭像.jpg')


x,y = guoqi.size

quyu = guoqi.crop((262,100, y+62,y-100))


w,h = touxiang.size

quyu = quyu.resize((w,h))

for i in range(w):
for j in range(h):
color = quyu.getpixel((i, j))
alpha = 255-i//3
if alpha < 0:
alpha=0
color = color[:-1] + (alpha, )
quyu.putpixel((i, j), color)


touxiang.paste(quyu,(0,0),quyu)
touxiang.save('五星紅旗半透明漸變頭像.png')

以上就是本次全部?jī)?nèi)容,如果你喜歡,希望給我點(diǎn)個(gè)贊和在看?哦?。「鼩g迎分享給更多的朋友們~

責(zé)任編輯:華軒 來(lái)源: 可以叫我才哥
相關(guān)推薦

2019-10-09 16:28:16

物聯(lián)網(wǎng)技術(shù)移動(dòng)互聯(lián)網(wǎng)

2016-01-12 17:10:56

嫦娥玉兔美照

2013-10-31 10:34:18

飛魚星無(wú)線云飛魚星路由器飛魚星

2023-09-29 11:32:07

2021-11-17 21:56:19

數(shù)字化

2023-11-10 12:41:46

模型訓(xùn)練

2017-04-24 14:56:41

騰訊云

2009-05-14 14:27:01

2023-09-25 15:54:28

Canvas國(guó)慶

2011-05-04 18:17:12

2012-11-26 12:20:48

2017-09-26 16:01:11

Wi-Fi五星酒店銳捷網(wǎng)絡(luò)

2012-08-03 10:13:53

信息安全網(wǎng)站安全數(shù)據(jù)監(jiān)控

2017-04-24 16:16:27

2020-02-20 19:28:15

QQ騰訊網(wǎng)上教學(xué)

2020-09-08 15:29:34

開發(fā)者App Store蘋果

2016-03-17 18:17:15

大數(shù)據(jù)大數(shù)據(jù)沼譯數(shù)據(jù)資產(chǎn)管理

2023-04-04 14:34:20

Commvault
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)