Ich versuche, eine Bilddatei zu bearbeiten und die Änderungen wieder in der Originaldatei zu speichern. Das Problem, das ich habe, ist das Überschreiben des Originalbildes; es scheint keinen zuverlässigen Weg zu geben, den Griff auf filename
.
Dieser Inhalt muss wieder in derselben Datei gespeichert werden, da externe Prozesse darauf angewiesen sind, dass der Dateiname gleich bleibt.
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
funktionierte, bis ich den Exception-Handler hinzufügte, mit dem ich eine Kopie des Bildes erstellte. Ich habe auch versucht, den Zugriff auf eine close()
Attribut von Image und with image
kein Erfolg.