Python:将GIF图片转换成png图片帧

python里有处理图像的库PIL,我们可以利用PIL库中的函数将gif图按帧截取出来。

方法1

from PIL import Image  # 导入PIL的Image包
import os
gifFileName = "./test.gif"  # 把gif图赋值给gifFileName
im = Image.open(gifFileName)  # 使用Image的open函数打开test.gif图像
pngDir = gifFileName[:-4]  # 倒着从gifFileName中的倒数第四个开始取字符(跳过.gif),赋值给pngDir,作为文件夹的名字
os.mkdir(pngDir)  # 用图片名创建一个文件夹,用来存放每帧图片,名字为pngDir的值
try:
  while True:  # 死循环
    current = im.tell()  # 用tell函数保存当前帧图片,赋值给current
    im.save(pngDir+'/'+str(current)+'.png')  # 调用save函数保存该帧图片
    im.seek(current+1)  # 调用seek函数获取下一帧图片,参数变为current帧图片+1
    # 这里再次进入循环,当为最后一帧图片时,seek会抛出异常,代码执行except
except EOFError:
    pass  # 最后一帧时,seek抛出异常,进入这里,pass跳过

方法2

from PIL import Image, ImageSequence

im = Image.open("test.gif")  # 使用Image的open函数打开test.gif图像

index = 1
for frame in ImageSequence.Iterator(im):  # for循环迭代的取im里的帧
    frame.save("frame%d.png" % index)  # 取到一个帧调用一下save函数保存,每次保存明明为frameX.png
    index += 1  # 序号依次叠加
    原文作者:ETalien_
    原文地址: https://blog.csdn.net/ETalien_/article/details/103000720
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞