Python Pillow - Urutan Gambar

Python Imaging Library (PIL) berisi beberapa dukungan dasar untuk urutan Gambar (format animasi). FLI / FLC, GIF dan beberapa format eksperimental adalah format urutan yang didukung. File TIFF juga dapat berisi lebih dari satu bingkai.

Membuka file urutan, PIL secara otomatis memuat bingkai pertama dalam urutan. Untuk berpindah di antara frame yang berbeda, Anda dapat menggunakan metode seek and tell.

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

Keluaran

raise EOFError
EOFError

Seperti yang kita lihat di atas, Anda akan mendapatkan pengecualian EOFError saat urutannya berakhir.

Sebagian besar driver di versi terbaru pustaka hanya memungkinkan Anda untuk mencari ke frame berikutnya (seperti pada contoh di atas), untuk memundurkan file, Anda mungkin harus membukanya kembali.

Kelas iterator urutan

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