图片在我们的生活中随处可见,例如最常见有趣的图片--表情包,你在使用QQ或微信跟别人聊天的时候,是不是经常会发一些表情包图片啊,你们的这些表情是从哪里获取的呢?
有些人会从网上下载一些有趣的表情包,也有一些人会有意识地添加别人发过来的有趣表情包,还有一些人自己制作有趣的表情包,说到制作表情包,很多人是不是第一反应就是使用一些P图软件,没错,这是一种常规的方法,下面就给大家介绍一种高大上的方法,用Python程序来制作表情包,先来上个效果图
最终效果图
在制作表情包之前,先来说一下实现的原理:
1. 选择一张有趣的图片,作为后面要制作的表情轮廓,例如下图所示
轮廓图片
2. 选择另一张有趣的表情包,从选图截取出表情部分,例如下图所示:
截取表情部分
3. 开始将截去出来的图片进行合成,制作的表情包效果如下图所示:
4. 将合成好的表情包添加有趣的文字,最终实现表情包效果如下图所示:
了解了制作表情包流程之后,下面就开始我们制作表情包之旅吧。
这里我们要使用一个专门用于处理图片的外部程序包--PIL(如果不知道包的概念,可以查看我的关于包介绍的文章)
首先在新建立好的程序中导入要使用的包PIL,因为要使用包中工具Image(打开图片工具), ImageDraw(写字工具), ImageFont(设置字体工具),使用方式如下:
from PIL import Image, ImageDraw, ImageFont
接着用打开图片工具Image打开表情图片
p=Image.open("pic.png") # pic.png代表的是要打开的图片名称
接着对打开的图片进行表情部分的裁剪,在裁剪之前要使用直角坐标系对表情部分进行定位,如图下所示:
定位
获取表情上的对角线上的两个点(x1,y1),(x2,y2),两点构成的长方形就是要裁剪的表情图片,
c = p.crop((x1,y1,x2,y2))
再接着,就是对切下来的表情部分图片的大小进行缩小或放大,以让它与选定的轮廓图片更加贴合,
定位
resize_img = c.resize((160,180),Image.ANTIALIAS) # 160:宽 180:高
接着,同样的根据坐标找到轮廓图片表情的起始点(x,y)的大致位置,将缩放好的表情部分图片与轮廓图片合成
使用Image工具打开轮廓图片
bg = Image.open(“轮廓图片名称”)
bg.paste(aa,(x,y))
再接着,使用设置字体工具ImageFont设置要显示的字体格式、大小,
tfont = ImageFont.truetype("华文行楷.ttf",36) # 华文行楷.ttf 是字体格式、 36是字体大小
然后使用写字工具ImageDraw, 绘制文字
draw=ImageDraw.Draw(bg)
draw.text((30,350),"哎呦,小伙不错哟",fill="black", font=tfont)
最后,将制作包的表情图片保存
bg.save(“保存图片名称”) # 例如1.png
升级版表情制作:
将真人照片制作成表情包
制作流程和上面大致相同,只多了一步,将截取表情部分进行脱色处理,不然按照上面的制作流程,制作出来的表情包是如下所示的:
那如何将截图的表情部分图片进行处理,使其符合制作表情包的需要呢?,预知后事,请听下回分解
更多好玩有趣的可以关注我的个人公众号: