圖片在我們的生活中隨處可見(jiàn),例如最常見(jiàn)有趣的圖片--表情包肾请,你在使用QQ或微信跟別人聊天的時(shí)候留搔,是不是經(jīng)常會(huì)發(fā)一些表情包圖片啊,你們的這些表情是從哪里獲取的呢铛铁?
有些人會(huì)從網(wǎng)上下載一些有趣的表情包蚕甥,也有一些人會(huì)有意識(shí)地添加別人發(fā)過(guò)來(lái)的有趣表情包约啊,還有一些人自己制作有趣的表情包耻陕,說(shuō)到制作表情包袁串,很多人是不是第一反應(yīng)就是使用一些P圖軟件,沒(méi)錯(cuò)倍权,這是一種常規(guī)的方法掷豺,下面就給大家介紹一種高大上的方法,用Python程序來(lái)制作表情包,先來(lái)上個(gè)效果圖
最終效果圖
在制作表情包之前当船,先來(lái)說(shuō)一下實(shí)現(xiàn)的原理:
1. 選擇一張有趣的圖片题画,作為后面要制作的表情輪廓,例如下圖所示
輪廓圖片
2. 選擇另一張有趣的表情包德频,從選圖截取出表情部分苍息,例如下圖所示:
截取表情部分
3. 開(kāi)始將截去出來(lái)的圖片進(jìn)行合成,制作的表情包效果如下圖所示:
4. 將合成好的表情包添加有趣的文字壹置,最終實(shí)現(xiàn)表情包效果如下圖所示:
了解了制作表情包流程之后档叔,下面就開(kāi)始我們制作表情包之旅吧。
這里我們要使用一個(gè)專門用于處理圖片的外部程序包--PIL(如果不知道包的概念蒸绩,可以查看我的關(guān)于包介紹的文章)
首先在新建立好的程序中導(dǎo)入要使用的包PIL,因?yàn)橐褂冒泄ぞ逫mage(打開(kāi)圖片工具), ImageDraw(寫字工具), ImageFont(設(shè)置字體工具)铃肯,使用方式如下:
from PIL import Image, ImageDraw, ImageFont
接著用打開(kāi)圖片工具Image打開(kāi)表情圖片
p=Image.open("pic.png") # pic.png代表的是要打開(kāi)的圖片名稱
接著對(duì)打開(kāi)的圖片進(jìn)行表情部分的裁剪患亿,在裁剪之前要使用直角坐標(biāo)系對(duì)表情部分進(jìn)行定位,如圖下所示:
定位
獲取表情上的對(duì)角線上的兩個(gè)點(diǎn)(x1,y1),(x2,y2)押逼,兩點(diǎn)構(gòu)成的長(zhǎng)方形就是要裁剪的表情圖片步藕,
c = p.crop((x1,y1,x2,y2))
再接著,就是對(duì)切下來(lái)的表情部分圖片的大小進(jìn)行縮小或放大挑格,以讓它與選定的輪廓圖片更加貼合咙冗,
定位
resize_img = c.resize((160,180),Image.ANTIALIAS) # 160:寬 180:高
接著,同樣的根據(jù)坐標(biāo)找到輪廓圖片表情的起始點(diǎn)(x,y)的大致位置,將縮放好的表情部分圖片與輪廓圖片合成
使用Image工具打開(kāi)輪廓圖片
bg = Image.open(“輪廓圖片名稱”)
bg.paste(aa,(x,y))
再接著漂彤,使用設(shè)置字體工具ImageFont設(shè)置要顯示的字體格式雾消、大小,
tfont = ImageFont.truetype("華文行楷.ttf",36) # 華文行楷.ttf 是字體格式挫望、 36是字體大小
然后使用寫字工具ImageDraw立润, 繪制文字
draw=ImageDraw.Draw(bg)
draw.text((30,350),"哎呦,小伙不錯(cuò)喲",fill="black", font=tfont)
最后媳板,將制作包的表情圖片保存
bg.save(“保存圖片名稱”) # 例如1.png
升級(jí)版表情制作:
將真人照片制作成表情包
制作流程和上面大致相同桑腮,只多了一步,將截取表情部分進(jìn)行脫色處理蛉幸,不然按照上面的制作流程破讨,制作出來(lái)的表情包是如下所示的:
那如何將截圖的表情部分圖片進(jìn)行處理,使其符合制作表情包的需要呢奕纫?提陶,預(yù)知后事,請(qǐng)聽(tīng)下回分解
更多好玩有趣的可以關(guān)注我的個(gè)人公眾號(hào):