J'essaie de prendre un fichier image, de faire des choses et d'enregistrer les modifications dans le fichier d'origine. Le problème que j'ai est d'écraser l'image originale; il ne semble pas y avoir un moyen fiable de libérer la poignée sur filename
.Comment fermer une image?
J'ai besoin que ce contenu soit sauvegardé dans le même fichier car les processus externes dépendent de ce nom de fichier pour rester les mêmes.
def do_post_processing(filename):
image = Image.open(str(filename))
try:
new_image = optimalimage.trim(image)
except ValueError as ex:
# The image is a blank placeholder image.
new_image = image.copy()
new_image = optimalimage.rescale(new_image)
new_image.save('tmp.tif')
del image
os.remove(str(filename))
os.rename('tmp.tif', str(filename))
del image
travaillait jusqu'à ce que j'ajouté le gestionnaire d'exception où j'ai fait une copie de l'image. J'ai également essayé d'accéder à un attribut close()
de Image et with image
, sans succès.
Si près que j'aurais pu le sentir. – Chris