Python/파이썬 오픈소스 배포

오픈소스 배포 프로젝트 - 2) 커스텀 패키지 (2)

monstro 2025. 7. 15. 00:40
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