import os
import glob
from PIL import Image

os.system('cls')

class GIF_Converter:
    def __init__(self, path_in = None, path_out = None, resize = (320, 240)):
        '''
        path_in : 원본 여러 이미지 경로(Ex : images/*.png)
        path_out : 결과 이미지 경로(Ex : output/finame.gif)
        resize : 리사이징 크기((320, 240))
        '''

        self.path_in = path_in or './*.png'
        self.path_out = path_out or './output.gif'
        self.resize = resize

    def convert_gif(self):
        '''
        GIF 이미지 변환 기능 수행
        '''

        print(self.path_in, self.path_out, self.resize)
        img, *images = \
            [Image.open(f).resize(self.resize, Image.ANTIALIAS) \
                for f in glob.glob(self.path_in)]

        try:
            img.save(
                fp = self.path_out,
                format = 'GIF',
                append_images = images,
                save_all = True,
                duration = 500,
                loop = 0
            )
        except IOError:
            print('Cannnot convert!', img)


if __name__ == '__main__':

    # 클래스
    c = GIF_Converter('./Level3/project/images/*.png', './Level3/project/image_out/result.gif', (320, 240))
    c.convert_gif()

    print(GIF_Converter.convert_gif.__doc__)