本文实例讲述了Python图像处理之gif动态图的解析与合成操作。分享给大家供大家参考,具体如下:
gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图。这里,就介绍下如何使用python来解析和生成gif图像。
如下图,是一个gif动态图。
gif动态图的解析可以使用<代码>公益诉讼> 代码图像模块即可,具体代码如下:
# - * -编码:utf - 8 - * 进口操作系统 从公益诉讼导入图像 def analyseImage(路径): “‘ 预处理过的图像来确定模式(或添加剂)。 必要的评估单帧并不可靠。需要知道模式 在处理之前所有的帧。 “‘ 我=Image.open(路径) 结果={ “大小”:im.size, “模式”:“完整的”, } 试一试: 而真正的: 如果im.tile: 瓦=im.tile [0] update_region=瓷砖[1] update_region_dimensions=update_region [2] 如果update_region_dimensions !=im.size: 结果[‘模式’]=安糠帧? 打破 im.seek (im.tell () + 1) 除了EOFError: 通过 返回结果 def processImage(路径): “‘ 迭代GIF,提取每一帧。 “‘ 模式=analyseImage(路径)(“模式”) 我=Image.open(路径) 我=0 p=im.getpalette () last_frame=im.convert (“RGBA”) 试一试: 而真正的: 打印”节约% d % s (% s)框架,% s % s“%(路径模式,我,我。尺寸、im.tile) “‘ 如果GIF使用地方色彩表,每个框架都有自己的调色板。 如果没有,我们需要全球面板应用于新的框架。 “‘ 如果不是im.getpalette (): im.putpalette (p) new_frame=形象。新(RGBA, im.size) “‘ 这个文件是一个“部分”模式GIF帧更新区域不同大小的整个形象# 63; 如果是这样,我们需要构建新的框架通过粘贴alt=" Python图像处理之gif动态图的解析与合成操作详解">
gif图像的合成,使用<代码> imageio> 代码库(https://pypi.python.org/pypi/imageio)
代码如下:
# - * -编码:utf - 8 - * 进口imageio def create_gif (image_list gif_name): ?[] 在image_list image_name: frames.append (imageio.imread (image_name)) #保存帧为gif imageio。mimsave (gif_name框架,GIF,时间=0.1) 返回 def main (): image_list=[' test_gif-0。png”、“test_gif-2。png”、“test_gif - 4. - png”, “test_gif-6。png”、“test_gif-8。png”、“test_gif - 10. png”) gif_name=' created_gif.gif ' create_gif (image_list gif_name) if __name__==癬_main__”: main () >之前这里,使用第一步解析出来的图像中的八幅图,间副的间隔时间为0.1 s,合成新的gif动态图如下:
更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》,《Python图片操作技巧总结》,《Python数据结构与算法教程》、《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
Python图像处理之gif动态图的解析与合成操作详解