728x90
반응형
- 개요
커스텀 패키지 (1)에서 만든 스크립트를 클래스 형태로 전환하여 사용성을 높인다
생성할 클래스의 구조는 다음과 같다
- __init__ 메서드 : 총 3개의 인자를 받는데, 이미지들의 경로 / 최종 GIF 파일의 경로 / 이미지 사이즈로 구성
- generate_gif 메서드 : GIF 파일을 생성하되, 이전과 다르게 예외처리 기능을 추가
- 스크립트
import glob
from PIL import Image
class GIFGenerator:
def __init__(self, inputPath=None, outputPath=None, imgSize=(320, 240)):
self.inputPath = inputPath or './*png'
self.outputPath = outputPath or './output.gif'
self.imgSize = imgSize
def generate_gif(self):
img, *images = [Image.open(f).resize(self.imgSize, Image.LANCZOS) for f in sorted(glob.glob(self.inputPath))]
try:
img.save(
fp=self.outputPath,
format='GIF',
append_images=images,
save_all=True,
duration=500,
loop=0,
disposal=2
)
except IOError:
print(f'Can`t generate GIF File {img}')
if __name__ == "__main__":
c = GIFGenerator(inputPath='./project/images/*.png', outputPath='./project/image_out/result.gif', imgSize=(640, 480))
c.generate_gif()
위와 같이 GIFGenerator 클래스를 정의하였다
인스턴스를 초기화하는 __init__ 메서드에서 3개의 인자를 받는데,
각각 GIF 파일을 구성하는 이미지의 경로 / 생성되는 GIF 파일의 경로 / 구성하는 이미지들의 사이즈를 의미한다
generate_gif 메서드는 호출하면 GIF 파일을 생성한다
클래스의 멤버 변수를 사용하여 GIF 파일을 생성하는데, 입출력 예외가 발생하면 에러 메세지를 출력한다
해당 클래스를 다른 모듈에서 import하는 경우 사용할 수 없도록 막고
GIFGenerator 클래스의 인스턴스를 생성한 후에 generate_gif 메서드를 호출하여 실행한다
- 최종 실행 결과

728x90
반응형
'Python > 파이썬 오픈소스 배포' 카테고리의 다른 글
| PyPI를 통한 배포 (2) (0) | 2025.07.16 |
|---|---|
| PyPI를 통한 배포 (1) (0) | 2025.07.15 |
| 오픈소스 배포 프로젝트 - 1) 커스텀 패키지 (1) (0) | 2025.07.14 |
| Descriptor (2) (0) | 2025.07.08 |
| Descriptor (1) (0) | 2025.07.07 |