许久,没更新一下自己帖子的开头结尾模板了,看久了总会觉得缺了点什么,于是上周就做了两个gif(上面那只猫的图片,三角形+“蓝字”就是哦,还不赶快关注),效果不是很满意,完整的代码嘛就不全部贴出来了,简单讲解一下。另外接下里2个月左右准备考职称,可能真要断更2个月,许久没考试脑力值挺缺的如果大家有什么好玩的事情,随时可以找我私聊。
就简单说说gif的思路吧,如果有玩过美图gif之类的app,就知道做一个gif很简单,连拍几张照片,然后按顺序选中,然后输出即可。那如果是自己动手做呢,无非就是自己做几张图片,然后按顺序合成。
那关键的两步1.作一张张的图片。2.按顺序合并成gif要怎么做呢?
我就做了这么个二维码,然后小飞机绕行,没有涉及复杂的东西。第一步,就是把小飞机贴到二维码上面,比如从左下角开始,按照飞行曲线的许多个坐标,进行粘贴小飞机制图。做一张图比较简单,使用PIL模块中的Image方法,实现代码及思路如下:
im = Image.open('%s\%s.png'% (path_file,1))
im.thumbnail((800,600))
im.save('%s\%s.png'% (path_file,1))
im1 = Image.open('plane.png')
im1.thumbnail((50,50))
im1 = im1.rotate(90)
im.paste(im1, (x, y),mask=im1)
im.save('%s\%s.png'% (path_file2, i))
也就是打开二维码图片、设置图片大小,然后打开小飞机并设置图片大小、旋转角度、粘贴坐标,然后一张图就做好了。
辣么,飞机的飞行曲线函数,要怎么表达,我就有点懵逼,想半天没想到牛逼的方法,就用最通俗的分段函数硬杠了出来(4条线段+4个点)
然后就是把这一张张的图片,按顺序合成一个gif,代码如下:
#!/usr/bin/python3.6
# -*- coding: utf-8 -*-
# __author__: Ed Frey
# date:2018/9/5
importimageio,os
defcreate_gif(image_list, gif_name):
frames = []
forimage_nameinimage_list:
frames.append(imageio.imread(image_name))
# Save them as frames into a gif
imageio.mimsave(gif_name, frames,'GIF',duration=0.1)
return
image_list = []
path_file='file_02'
files = os.listdir(path_file)
files.sort(key=lambdax:int(x[:-4]))
foriinfiles:
png ='%s\%s'%(path_file,i)
ifos.path.isfile(png):
image_list.append(png)
create_gif(image_list,'picture.gif')
旋转角度、粘贴坐标,然后一张图就做好了。
本期就更新到这里,另外,剧透一下最近在玩的内容,就是开发通过个人号发送微信消息、QQ消息的功能(其实本想做企业微信的发送消息,苦于没个人号相关的模块功能,官方的接口是要用企业管理员的权限及相关参数,这谁肯给我呢),目前wechat、qq发消息的核心代码都已完成,而且已经配置基础信息测试了……
一晃可能真要到12月或者1月才能有时间更新出来。我计划要写的比ATM更精致一些,作为今年的收官之作,敬请期待
再贴一遍我刚出炉的GIF小飞机,转啊转
领取专属 10元无门槛券
私享最新 技术干货