[파이썬] Pillow 여러 이미지를 동영상으로 만들기

이미지 처리를 위한 파이썬 라이브러리인 Pillow를 사용하면 다양한 이미지 작업을 할 수 있습니다. 이번에는 Pillow를 사용하여 여러 개의 이미지를 동영상으로 만드는 방법에 대해 알아보겠습니다.

필요한 패키지 설치

Pillow를 사용하기 위해 먼저 Pillow 패키지를 설치해야 합니다. 아래의 명령어를 사용하여 패키지를 설치해주세요.

pip install pillow

여러 이미지 가져오기

동영상으로 만들 이미지들이 있는 디렉토리에서 이미지 파일들을 가져와야 합니다. 아래의 코드를 사용하여 디렉토리 내의 이미지 파일들을 가져올 수 있습니다.

import os
from PIL import Image

# 이미지가 있는 디렉토리 경로 설정
image_dir = '/path/to/images'

# 디렉토리 내의 이미지 파일들 목록 가져오기
image_files = [os.path.join(image_dir, file) for file in os.listdir(image_dir)]

이미지 크기 조정 및 저장

동영상으로 만들 이미지들의 크기를 조정해야 합니다. Pillow의 resize 함수를 사용하여 이미지의 크기를 조정한 후, save 함수를 사용하여 이미지를 저장합니다. 아래의 코드는 이미지 크기를 640x480으로 조정한 후, resized_images 디렉토리에 이미지를 저장하는 예시입니다.

# 이미지 크기 조정 및 저장
resized_images_dir = '/path/to/resized_images'

for file in image_files:
    image = Image.open(file)
    resized_image = image.resize((640, 480))
    new_file_path = os.path.join(resized_images_dir, os.path.basename(file))
    resized_image.save(new_file_path)

동영상 생성

이미지 파일들을 가져와서 크기를 조정한 후, Pillow의 ImageSequence 클래스를 사용하여 이미지들을 순차적으로 연결한 후, 동영상 파일로 저장할 수 있습니다. 아래의 코드는 resized_images 디렉토리 내의 이미지들을 사용하여 동영상 파일을 생성하는 예시입니다.

# 동영상 파일 생성
video_file = '/path/to/video.mp4'

frames = []
for file in os.listdir(resized_images_dir):
    frame = Image.open(os.path.join(resized_images_dir, file))
    frames.append(frame)

frames[0].save(video_file, format='MP4', append_images=frames[1:], save_all=True, duration=200, loop=0)

위의 코드에서 duration은 각 프레임이 보여지는 시간을 설정하는 값이며, loop는 동영상 재생을 반복할 횟수를 설정하는 값입니다.

이제 Pillow를 사용하여 여러 개의 이미지를 동영상으로 만드는 방법에 대해 알아보았습니다. 다양한 이미지 처리 작업을 통해 원하는 동영상을 생성해보세요!