python可以怎么玩_Python还可以这么玩?(一)

图片在我们的生活中随处可见,例如最常见有趣的图片--表情包,你在使用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

升级版表情制作:

将真人照片制作成表情包

照片制作表情包

制作流程和上面大致相同,只多了一步,将截取表情部分进行脱色处理,不然按照上面的制作流程,制作出来的表情包是如下所示的:

那如何将截图的表情部分图片进行处理,使其符合制作表情包的需要呢?,预知后事,请听下回分解

更多好玩有趣的可以关注我的个人公众号:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值