[파이썬] Pillow 애니메이션 GIF 프레임 추출하기

이번에는 Python의 Pillow 라이브러리를 사용하여 애니메이션 GIF 파일에서 프레임을 추출하는 방법에 대해 알아보겠습니다.

Pillow 라이브러리란?

Pillow는 Python에서 이미지 처리에 사용되는 강력하고 사용하기 쉬운 라이브러리입니다. 이미지를 열거나 저장하는 데 사용되는 다양한 형식의 파일을 처리할 수 있으며, 그래픽 작업을 수행하는 데 도움이 됩니다.

애니메이션 GIF 파일에서 프레임 추출하기

Python의 Pillow 라이브러리를 사용하여 애니메이션 GIF 파일에서 각 프레임을 추출하는 방법은 다음과 같습니다:

  1. Pillow 라이브러리를 설치합니다. 아래의 명령을 사용하여 설치할 수 있습니다:

    pip install pillow
    
  2. 다음과 같이 Python 코드를 작성합니다:

    from PIL import Image
    
    # 애니메이션 GIF 파일 열기
    gif_file = "animation.gif"
    image = Image.open(gif_file)
    
    # 프레임 추출
    frames = []
    try:
        while True:
            frames.append(image.copy())
            image.seek(len(frames))  # 다음 프레임으로 이동
    except EOFError:
        pass
    
    # 각 프레임 저장
    for index, frame in enumerate(frames):
        save_file = f"frame_{index}.png"
        frame.save(save_file, format="PNG")
    

    위의 코드는 animation.gif라는 애니메이션 GIF 파일을 열고, 각 프레임을 추출하여 PNG 형식으로 저장합니다. 프레임은 frames라는 리스트에 저장되며, 각 프레임은 frame_{index}.png라는 이름으로 저장됩니다.

  3. 위의 코드를 실행하면 애니메이션 GIF 파일에서 프레임을 추출하여 PNG 파일로 저장합니다.

위의 예시 코드에서는 예외 처리를 통해 파일의 끝을 확인하여 프레임 추출을 중단합니다.

이제 Pillow 라이브러리를 사용하여 애니메이션 GIF 파일에서 프레임을 추출하는 방법을 알게 되었습니다. 이를 통해 애니메이션 GIF 파일의 각 프레임을 분석하고 사용자 정의 작업을 수행할 수 있습니다.