Python PIL.Image之拆解GIF图片
------------------------------------------------语法基础------------------------------------------------
import PIL.Image 使用PIL.Image模块
img=Image.open(gif_path) 打开图片的方法,会返回一个对象,对图片的相关操作都是对这个对象的操作
img.seek(i) 选择某一个帧,这里不会返回新对象。此时调用save方法,其实已经保存了某一帧。
img.save(save_path) 保存图片,参数为路径文件名
------------------------------------------------操作方法------------------------------------------------
1.打开GIF图片,返回获得的对象自动定位第0帧图片
2.保存当前帧
3.切换到下一帧
4.循环2.3步直到抛出异常。
------------------------------------------------代码实现------------------------------------------------
import PIL.Image as Image
import os
def gif_split(path):
# ############################
# 这部分用于建立一个文件夹,以便存放拆解的图片
save_path = path[:-4]
try:
os.mkdir(save_path)
except:
pass
# ############################
img = Image.open(path)
try:
i = 0
while True:
print('正在拆解第{}帧...'.format(i))
img.seek(i)
img.save('{}/'.format(save_path) + str(i) + '.png')
i += 1
except:
pass
return save_path, i
if __name__ == '__main__':
path = '路人甲.gif'
save_path, i = gif_split(path)
print('拆解完成,共得到{}张图片。所属文件:{}'.format(i,save_path))
------------------------------------------------效果展示------------------------------------------------
------------------------------------------------结语------------------------------------------------
合并GIF的操作请在我的同类其他博客查看。