No Python, dado um diretório de imagens em tamanho real, como posso gerar miniaturas usando mais de um núcleo da CPU?

StackOverflow https://stackoverflow.com/questions/4066606

Pergunta

Eu tenho uma máquina de 16 núcleos, mas minha função de redimensionamento atual usa apenas um núcleo, o que é realmente ineficiente para um grande diretório de imagens.

def generateThumbnail(self, width, height):
     """
     Generates thumbnails for an image
     """
     im = Image.open(self._file)
     (detected_width,detected_height) = im.size

     #Get cropped box area
     bbox = self.getCropArea(detected_width, detected_height, width, height)

     #Crop to box area
     cropped_image = im.crop(bbox)

     #Resize to thumbnail
     cropped_image.thumbnail((width, height), Image.ANTIALIAS)

     #Save image
     cropped_image.save(self._path + str(width) + 'x' +
             str(height) + '-' + self._filename, "JPEG")

Qualquer ajuda seria muito apreciada. Obrigada.

Foi útil?

Solução

Isso soa como uma boa solução para o multiprocessamento O módulo, que usa a interface de rosqueamento, mas cria processos separados em vez de threads.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top