import os from PIL import Image,ImageSequence def parseGIF(gifname): # 将gif解析为图片 # 读取GIF im = Image.open(gifname) # gif图片流的迭代器 iter = ImageSequence.Iterator(im) # 获取文件名 file_name = gifname.split(".")[0] index = 1 # 判断目录是否存在 pic_dirct = "imgs/{0}".format(file_name) mkdirlambda = lambda x: os.makedirs( x) if not os.path.exists(x) else True # 目录是否存在,不存在则创建 mkdirlambda(pic_dirct) # 遍历图片流的每一帧 for frame in iter: print("image %d: mode %s,size %s" % (index,frame.mode,frame.size)) frame.save("imgs/%s/frame%d.png" % (file_name,index)) index += 1 # frame0 = frames[0] # frame0.show() # 把GIF拆分为图片流 imgs = [frame.copy() for frame in ImageSequence.Iterator(im)] # 把图片流重新成成GIF动图 imgs[0].save(‘out.gif‘,save_all=True,append_images=imgs[1:]) # 图片流反序 imgs.reverse() # 将反序后的所有帧图像保存下来 imgs[0].save(‘./reverse_out.gif‘,append_images=imgs[1:]) if __name__ == "__main__": parseGIF("03.gif")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。