Python Pillow 图像序列

Python Pillow 图像序列

Python Imaging Library (PIL)包含对图像序列(动画格式)的一些基本支持。FLI/FLC、GIF和一些实验性格式是支持的序列格式。TIFF文件也可以包含一个以上的帧。

打开一个序列文件,PIL自动加载序列中的第一帧。要在不同的帧之间移动,你可以使用寻找和告诉方法。

from PIL import Image
img = Image.open('bird.jpg')
#Skip to the second frame
img.seek(1)
try:
   while 1:
      img.seek(img.tell() + 1)
      #do_something to img
except EOFError:
   #End of sequence
   pass

输出

raise EOFError
EOFError

正如我们在上面看到的,当序列结束时你会得到一个EOFError异常。

最新版本的库中的大多数驱动程序只允许你寻求到下一帧(如上面的例子),要倒退文件,你可能必须重新打开它。

一个序列迭代器类

class ImageSequence:
   def __init__(self, img):
      self.img = img
   def __getitem__(self, ix):
      try:
         if ix:
            self.img.seek(ix)
         return self.img
      except EOFError:
         raise IndexError # end of sequence
for frame in ImageSequence(img):
   # ...do something to frame...

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程