import os
from PIL import Image

from SIMSIM.Utils import Utils

class TestCode:

    def __init__(self):

        self.targetDirectory = Utils.getFile()
        self.elements = {} # dictionary

    def directorySearch(self):
        # directory 이동
        Utils.directoryMove(self.targetDirectory)
        directoryList = os.listdir(os.path.abspath(os.getcwd()))

        for f in directoryList:
            mrk = f.split("-")[0]

            if mrk not in self.elements.keys():
                self.elements[mrk] = [os.path.abspath(f)]
            else:
                self.elements[mrk].append(os.path.abspath(f))

        print (self.elements)

    def imageSize(self):

        for k, v in self.elements.items():
            new_dir = os.getcwd() + "\\" + k + "_dir"
            if not os.path.exists(new_dir):
                os.mkdir(new_dir)

            sizeDict = {"with": [], "height": []}

            for x in v:
                im = Image.open(x)
                w,h =  im.size
                sizeDict["with"].append(w); sizeDict["height"].append(w)

            height = max(sizeDict["height"])
            # image resize
            reSize = self.avgSize(sizeDict)

            # save image
            saveImageFile = Image.new("RGB", (reSize[0], reSize[1]*2), (255,255,255))
            yOffset = 0
            for x in v:
                rIm = Image.open(x)
                resizedImage = rIm.resize(reSize)
                saveImageFile.paste(resizedImage, (0, yOffset))
                yOffset += resizedImage.size[1]
            os.chdir(new_dir)
            saveImageFile.save("{}.jpg".format(k))

            # 상위 경로로 이동
            os.chdir("..")

    def avgSize(self, size):
        return min(size["with"]), min(size["height"])


def main():
    tnode = TestCode() # 객체 생성성
    tnode.directorySearch()
    tnode.imageSize()
if __name__ == "__main__":
    main()

'언어 > python' 카테고리의 다른 글

naver music 크롤링 + elasticsearch  (0) 2019.05.22
네이버 뉴스 크롤링 + 형태소  (0) 2019.05.01
python + outlook  (0) 2019.03.31
selenium_  (0) 2019.03.11
2019년 3월 9일 ( 주말 프로젝트 )  (0) 2019.03.09