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