ImageSequence模块包括了一个wrapper类,它能够让用户迭代訪问图形序列中每一帧图像。
一、ImageSequence模块的函数
1、 Iterator
定义:ImageSequence.Iterator(image) ⇒ Iterator instance
含义:创建一个迭代器实例,让用户循环訪问序列中的全部帧图像。
样例:见以下的样例。
二、ImageSequence模块的方法
1、 Operator
定义:Operator []
含义:用户调用这个操作器,从0開始訪问。
当没有其它帧图像时。这个迭代器将产生一个IndexError异常。
样例:
from PIL import Image, ImageSequence im = Image.open("D:\\Code\\Python\\test\\img\\test01.gif") index = 1 for frame in ImageSequence.Iterator(im): print "image: index %d, mode %s, size %s" % (index, frame.mode, frame.size) frame.save("frame%d.png" % index) index = index + 1 iter = ImageSequence.Iterator(im) print "image 10: mode %s, size %s" % (iter[10].mode, iter[10].size) iter[10].show()
图像test01.gif为多张动态图像。
通过函数ImageSequence.Iterator(im)获取了图像对象im的迭代器,然后从当中逐张取出每张图片。打印了它们的模式和尺寸。后面通过操作符[]获取迭代器中的相应图像。iter[10]相应着第十张图像。
该程序输出例如以下:
image:index 1, mode P, size (450, 450)
image:index 2, mode P, size (450, 450)
image:index 3, mode P, size (450, 450)
image:index 4, mode P, size (450, 450)
image:index 5, mode P, size (450, 450)
image:index 6, mode P, size (450, 450)
image:index 7, mode P, size (450, 450)
image:index 8, mode P, size (450, 450)
image:index 9, mode P, size (450, 450)
image:index 10, mode P, size (450, 450)
image:index 11, mode P, size (450, 450)
image:index 12, mode P, size (450, 450)
image:index 13, mode P, size (450, 450)
image:index 14, mode P, size (450, 450)
image:index 15, mode P, size (450, 450)
image:index 16, mode P, size (450, 450)
image:index 17, mode P, size (450, 450)
image:index 18, mode P, size (450, 450)
image:index 19, mode P, size (450, 450)
image:index 20, mode P, size (450, 450)
image:index 21, mode P, size (450, 450)
image:index 22, mode P, size (450, 450)
image:index 23, mode P, size (450, 450)
image10: mode P, size (450, 450)
图像test01.gif例如以下:
当中第二张图像为:
当中第二十张图像为:
后面通过操作符[]获取的第十张图像例如以下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决