En Python, étant donné un répertoire des images en taille réelle, comment puis-je générer des vignettes en utilisant plus d'un noyau CPU?
-
28-09-2019 - |
Question
J'ai une machine 16-core, mais ma fonction de redimensionnement actuelle utilise un seul noyau, ce qui est vraiment inefficace pour un grand répertoire d'images.
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")
Toute aide serait grandement appréciée. Merci.
La solution
Cela sonne comme une bonne solution pour le module multitraitement , qui utilise la Interface de filetage, mais crée des processus distincts au lieu de threads.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow