Python Pillow-이미지 시퀀스
Python Imaging Library (PIL)에는 이미지 시퀀스 (애니메이션 형식)에 대한 몇 가지 기본 지원이 포함되어 있습니다. FLI / FLC, GIF 및 몇 가지 실험적 형식이 지원되는 시퀀스 형식입니다. TIFF 파일에는 두 개 이상의 프레임도 포함될 수 있습니다.
시퀀스 파일을 열면 PIL은 시퀀스의 첫 번째 프레임을 자동으로로드합니다. 다른 프레임 사이를 이동하려면 seek 및 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
산출
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...