Python图像处理之gif动态图的解析与合成操作详解

  

本文实例讲述了Python图像处理之gif动态图的解析与合成操作。分享给大家供大家参考,具体如下:

  

gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图。这里,就介绍下如何使用python来解析和生成gif图像。

  

  

如下图,是一个gif动态图。

  

 Python图像处理之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>   

代码如下:

        # - * -编码: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图像处理之gif动态图的解析与合成操作详解

  

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》,《Python图片操作技巧总结》,《Python数据结构与算法教程》、《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

  

希望本文所述对大家Python程序设计有所帮助。

Python图像处理之gif动态图的解析与合成操作详解