Python

    리스트에서 랜덤으로 원소 뽑기 - python list random choices

    import random selected = random.choice(someList) print(selected) 번외 확률을 가진 리스트에서 원소를 뽑는 방법이다. import random selected = random.choices( someList, # 원소 probabilityList # 원소의 확률 ).pop() print(selected)

    Pillow 이미지처리 multiprocessing으로 성능 올리기

    17+ 개의 PNG 레이어들을 랜덤으로 병합하여 10,000개의 이미지를 만들어내는 프로젝트를 진행중이다. 처음 single-thread 방식으로 구현하였을때 6시간이 걸리길래 식겁한 경험이 있다. 이를 단 20분으로 줄인 방법을 설명하고자 한다. 다음은 Pillow 라이브러리를 이용해 이미지 레이어를 합성하는 예시이다. def merge_image_layer(self, trait): image_layer_path = self.parse_image_directory(trait) # layer PNG image directories stack = Image.new('RGBA', (self.width, self.height)) # create new image canvas for layer, path in ..