赞
踩
------------------------------------------------语法基础------------------------------------------------
import PIL.Image 相关模块
img=Image.open(img_name) 打开图片
img.save(save_name, save_all=True, \
append_images=imgs, duration=t) 保存图片
------------------------------------------------操作方法------------------------------------------------
1.打开图片后会得到一个对象,我们把这个对象放进列表。列表里的所有对象将被合成GIF图片
2.用这个列表作为参数之一,使用第0个对象调用save方法即可。
3.参数解释save_all=True 设置此项,会保存所有图片对象,否则只保存一张
append_images=imgs imgs为存放对象们的列表
duration=t GIF动图的间隔时间
------------------------------------------------代码实现------------------------------------------------
import PIL.Image as Image
def get_gif(pics_dir,n,t=0.1):
imgs = []
for i in range(n):
pic_name = '{}/{}.png'.format(pics_dir,i)
temp = Image.open(pic_name)
imgs.append(temp)
save_name = '{}.gif'.format(pics_dir)
imgs[0].save(save_name, save_all=True, append_images=imgs, duration=t)
return save_name
if __name__ == '__main__':
pics_dir = '路人甲'
save_name = get_gif(pics_dir,40,0.2)
print('制作完成。所属文件:{}'.format(save_name))
------------------------------------------------效果展示------------------------------------------------
------------------------------------------------结语------------------------------------------------
如果希望制作透明背景的GIF,请为save方法添加transparency参数。其值是一个0~255的整形。
不过,有一个很大的问题,成品会出现重影。我翻遍五湖四海也没有找到解决方法。
如果哪位兄弟找到了制作透明背景图片的方法,请务必告诉我,谢谢!
------------------------------------------------补充------------------------------------------------
gif透明的方法:
感谢评论区covsno提供的Chen Jiehua大佬通过研究源码发现的方法,把以上代码save行改为
imgs[0].save(save_name, save_all=True, append_images=imgs, duration=t, transparency=0, disposal=2)
即可实现gif的完全透明
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。