Gối Python - Chuỗi hình ảnh

Thư viện hình ảnh Python (PIL) chứa một số hỗ trợ cơ bản cho Chuỗi hình ảnh (định dạng hoạt ảnh). FLI / FLC, GIF và một vài định dạng thử nghiệm là các định dạng chuỗi được hỗ trợ. Các tệp TIFF cũng có thể chứa nhiều hơn một khung.

Mở tệp trình tự, PIL tự động tải khung đầu tiên trong trình tự. Để di chuyển giữa các khung khác nhau, bạn có thể sử dụng phương pháp tìm kiếm và nói.

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

Đầu ra

raise EOFError
EOFError

Như chúng ta có thể thấy ở trên, bạn sẽ nhận được ngoại lệ EOFError khi trình tự kết thúc.

Hầu hết các trình điều khiển trong phiên bản thư viện mới nhất chỉ cho phép bạn tìm đến khung tiếp theo (như trong ví dụ trên), để tua lại tệp, bạn có thể phải mở lại.

Một lớp trình lặp trình tự

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...