파이썬을 사용하면 이미지 파일을 사용해서 GIF 애니메이션 동영상을 만들 수 있습니다. 이때 사용되는 파이썬 패키지는 imageio 입니다. 이번 포스팅에서는 파이썬을 사용해 PNG나 JPEG와 같은 이미지 파일로 GIF를 만드는 방법에 대해 공유하고자 합니다.
해당 포스팅에서 제공하는 예제 코드를 사용하실 분은 맨 앞 코드부터 차례대로 입력하시면 해당 코드의 실행이 가능합니다.
패키지 선언
파이썬을 사용해 GIF 애니메이션 파일을 만들기 위해서는 두 가지 패키지가 필요합니다. 바로, os 패키지와 imageio 패키지입니다. 오래전에 파이썬을 설치했기 때문에 imageio가 내장 모듈인지 여부는 모르겠습니다.
import imageio
import os
imageio 패키지가 설치되어 있지 않은 분은 아래 포스팅 참고하시고 패키지를 설치하시면 되겠습니다.
GIF 생성 필요 변수 선언 코드
해당 코드의 반복적인 사용을 위해서는 디렉토리와 파일 이름 등을 변수화 해주는 것이 좋습니다. 총 네 가지를 변수 선언할 것이며 위에서부터 디렉토리, 확장자, GIF 이름, 사진을 넘기는 시간입니다.
각 변수에 대한 설명은 아래와 같습니다.
- directory : GIF로 변환할 사진 위치 폴더
- file_type : GIF로 변환할 사진의 확장자
- save_gif_name : GIF 파일명
- speed_sec : 사진을 넘기는 시간(초)
위와 같은 변수가 적용된 파이썬 코드 예제는 다음과 같습니다.
directory = r'D:/0_coopang' # 사진 디렉토리
file_type = r'png' # 사진 확장자
save_gif_name = r'Animation' # 완성 gif 이름
speed_sec = { 'duration': 2. } # 사진 넘기는 시간(초)
여기서 사진 Duration은 GIF에서 사진을 넘기는 시간인데 초 단위를 사용합니다. 필요한 정도로 적용해서 사용하시면 되겠습니다.
GIF 변환 코드
위에서 모든 변수는 정해줬으니, 아래 코드는 그냥 실행하시면 됩니다. 굳이 이해하지 않아도 되는 코드이니 적당히 붙여 넣고 실행하시면 되겠습니다. 아래 코드를 실행하시면 선언한 디렉토리 안에 선언한 GIF 이름으로 파일이 저장됩니다.
images = []
for file_name in os.listdir(directory):
if file_name.endswith('.{}'.format(file_type)):
file_path = os.path.join(directory, file_name)
images.append(imageio.imread(file_path))
imageio.mimsave('{}/{}.gif'.format(directory, save_gif_name), images, **speed_sec)
주의 사항이 있는데, GIF로 변환할 이미지 파일명은 알파벳 순서대로 이름이 정해져 있어야 합니다. 예를 들어 a, b, c, d, e, f 와 같이 말입니다. 문제는 숫자로 파일 이름을 지정해놓으면 1, 10, 11, 12, 2, 3, 4 와 같은 순서로 GIF가 생성되니 유의하시면 되겠습니다.
마치며
이번 포스팅에서는 간단히 파이썬을 이용해 이미지 파일을 GIF 애니메이션 파일로 만드는 예제 코드를 공유했습니다. 해당 코드와 방법을 적용해보시고 문제 있으신 분은 댓글 남겨주시면 답변해드리겠습니다.
댓글