今天JiawuLab教大家一個(gè)小技能,一秒制作一組心情頭像尿招,直接將心情寫在頭像上矾柜,做一個(gè)心情都表現(xiàn)在臉上的人。
文 | JiawuLab 就谜,原創(chuàng)作品怪蔑。
每當(dāng)注冊一個(gè)網(wǎng)站或是APP,你最先做的事情丧荐,可能就是更換頭像缆瓣,比如微信、QQ虹统、頭條弓坞、論壇等等。
頭像已經(jīng)成為互聯(lián)網(wǎng)時(shí)代车荔,社交中重要的一部分渡冻,好友會(huì)通過頭像來認(rèn)識(shí)你,也會(huì)根據(jù)你的頭像變化忧便,來判斷你這段時(shí)間的心情菩帝。
但是你有發(fā)現(xiàn)嗎?經(jīng)常更換不同的頭像茬腿,會(huì)導(dǎo)致部分好友不認(rèn)識(shí)你呼奢,但是有時(shí)自己又特別想換個(gè)頭像,換個(gè)心情切平,該怎么辦呢握础?
為了解決這個(gè)問題,心情頭像就能很好的滿足你的要求悴品。既能更換自己心情禀综,也能讓好友還能記住你简烘。
那么如何制作一組自己心儀的心情頭像呢?這里會(huì)演示一步步的實(shí)現(xiàn)過程定枷,請(qǐng)繼續(xù)閱讀孤澎。
素材收集
制作心情頭像,只需要兩樣素材:
1欠窒、你的頭像圖片
2覆旭、一群心情圖標(biāo)
要求也很簡單,保存格式為“PNG”圖片即可岖妄。
可能你會(huì)說型将,頭像圖片很容易獲得,但心情圖標(biāo)好像很難找荐虐,該怎么做呢七兜?
其實(shí)只要在電腦上安裝過微信或QQ就可以了,本文就以QQ的圖標(biāo)庫為例來進(jìn)行福扬。
上圖可看到腕铸,在QQ文件夾中的Resources文件夾,(windows系統(tǒng)下位置會(huì)略有不同)铛碑。
所有的表情包都能在這里看到狠裹,你只用挑選出喜歡的表情就可能了,記得選擇“PNG”格式哦亚茬。
這里我挑選了9張經(jīng)常會(huì)用到的表情包,放在一個(gè)名為“moji”的文件夾中浓恳,作為本次演示的心情圖標(biāo)刹缝。
(后文會(huì)涉及一點(diǎn)技術(shù),但過程也很精彩颈将,建議您觀看下去梢夯。)
技術(shù)要點(diǎn)
制作心情頭像會(huì)用到下面這些技術(shù)要點(diǎn):
1、使用Python的PIL庫晴圾,來處理頭像圖片和心情圖標(biāo)颂砸,
2、使用遞歸的方式死姚,對(duì)心情圖標(biāo)進(jìn)行遍歷取值(getpixel()方法)人乓,
3、再使用putpixel()方法將取到的顏色值寫入頭像圖片都毒,
4色罚、使用save()方法保存,輸出心情頭像圖片账劲,
5戳护、使用“os.listdir()”方法金抡,獲取所有心情圖標(biāo),批量處理腌且。
如果你看不懂這個(gè)過程梗肝,舉個(gè)小例子,你就懂了铺董。
小時(shí)候?qū)W畫畫巫击,我們會(huì)用一張紙放在原畫上面,然后用筆臨摹出來柄粹,上面的技術(shù)方法的原理喘鸟,和這個(gè)臨摹過程是一樣的。
實(shí)現(xiàn)過程
1驻右、打開頭像圖及心情圖標(biāo)什黑,這里注意,PNG格式的圖片堪夭,打開時(shí)需要轉(zhuǎn)換為“RGBA”愕把,否則會(huì)有錯(cuò)誤。
# 導(dǎo)入PIL庫
from PIL import Image
# 打開頭像圖片
im = Image.open('touxiang.png').convert('RGBA')
# 打開心情圖標(biāo)
im_mo = Image.open('moji/1.png').convert('RGBA')
2森爽、使用遞歸方式恨豁,對(duì)圖標(biāo)進(jìn)行遍歷取值(getpixel()方法),再利用putpixel()方法將前面取到的顏色值寫入頭像圖片爬迟,然后save()方法保存橘蜜。
# 選擇心情圖標(biāo)的位置
m = im.size[1]-im_mo.size[1]-20
# 獲取心情圖標(biāo)的顏色值,再寫入頭像圖片中
for i in range(im_mo.size[0]):
for j in range(im_mo.size[1]):
if im_mo.getpixel((i, j))[:-1] != (0, 0, 0):
im.putpixel((i + m, j + m), im_mo.getpixel((i, j)))
# 使用save()保存付呕,輸出心情頭像
im.save('pic/1.png')
這里if判斷的目的是只將心情圖標(biāo)中有顏色的部分寫入頭像圖片中计福。
而心情圖標(biāo)會(huì)選擇貼在頭像圖片的右下角,且與右邊和下邊的間隔為“20px”徽职,你可以根據(jù)自己需要更改象颖。
3、為了實(shí)現(xiàn)一秒生成多張心情頭像姆钉,需要將上面二步改寫為函數(shù)说订,內(nèi)部代碼稍微改動(dòng)。
# 改寫成函數(shù)
def mindpic(x):
im = Image.open('touxiang.png').convert('RGBA')
im_mo = Image.open(f'moji/{x}').convert('RGBA')
# 選擇心情圖標(biāo)的位置
m = im.size[1] - im_mo.size[1] - 20
for i in range(im_mo.size[0]):
for j in range(im_mo.size[1]):
if im_mo.getpixel((i, j))[:-1] != (0, 0, 0):
im.putpixel((i + m, j + m), im_mo.getpixel((i, j)))
im.save(f'pic1/{x}')
4潮瓶、使用“os.listdir()”方法獲取所有圖標(biāo)文件名陶冷,通過循環(huán)的方式,傳遞給函數(shù)參數(shù)來執(zhí)行毯辅。
import os
# os.listdir()方法獲取moji文件夾中所有圖標(biāo)文件名
files = os.listdir('moji')
for f in files:
# 判斷后綴是不是png埃叭,如果是png,調(diào)用mindpic函數(shù)
if f[-3:] == 'png':
mindpic(f)
這里做“png”后綴的判斷悉罕,主要是文件夾中有可能會(huì)有其他非圖片文件赤屋,需要剔除掉立镶,否定代碼會(huì)出錯(cuò)。
通過上述四步完成后类早,運(yùn)行代碼媚媒,就能一秒生成9張心情頭像啦,如下圖:
是不是很好玩涩僻,只需要將所需要的心情圖標(biāo)放入文件夾中缭召,運(yùn)行一下程序,就能生成出各種各樣的心情頭像逆日。
你以后就能根據(jù)心情嵌巷,隨時(shí)更換自己的頭像,讓好友們都能看到您此刻的心情室抽。
以上是演示過程饭庞,理論上炫贤,您放上100張心情圖標(biāo),最多也就幾秒鐘的時(shí)候就能生成了。
結(jié)語
通過上述的演示符相,您get到心情頭像制作的技能點(diǎn)了嗎佃却?
這里總結(jié)一下重要的點(diǎn):
1搀突、準(zhǔn)備好頭像圖片及心情圖標(biāo)乏屯,
2、使用python的PIL庫來進(jìn)行圖片處理病梢,
3胃珍、getpixel()、putpixel()蜓陌、save()方法
4觅彰、os.listdir()獲取所有圖標(biāo)文件
5、合理使用函數(shù)护奈,傳參更方便缔莲。
希望我的分享哥纫,能對(duì)您有所收獲霉旗,您也能自己制作出心儀的心情頭像。
如果您喜歡本期的分享蛀骇,歡迎您在評(píng)論區(qū)討論厌秒、轉(zhuǎn)發(fā),或者順手點(diǎn)個(gè)贊擅憔。謝謝鸵闪。