2017-07-24 3 views
0

Ich versuche ein Programm zu erstellen, das jedes Bild in einem Verzeichnis auf 299 x 299 skaliert. Dann möchte ich dieses Bild umbenennen und es in ein JPEG umwandeln, so dass alle Bilder 0.jpg, 1.jpg, 2.jpg usw. benannt werden. Ich möchte auch die umgewandelten Akten in ihr eigenes Verzeichnis bewegen .Umbenennen, Ändern der Größe und Verschieben von Bilddateien in Python

Ich habe bereits die Größenänderung Teil davon gelöst. Wenn ich jedoch den Code zum Umbenennen hinzugefügt habe, d. H. (Index = 0, new_image.save) Dateiname, str (Index), + ".jpg" und Index + = 1), funktioniert der Größenänderungsabschnitt nicht mehr. Hat jemand irgendwelche Vorschläge?

Dies ist, was ich bisher:

#!usr/bin/python 

from PIL import Image 
import os, sys 

directory = sys.argv[1] 
for file_name in os.listdir(directory): 
     print ("Converting %s" % file_name + "...") 
     image = Image.open(os.path.join(directory, file_name)) 

     size = 299, 299 
     image.thumbnail(size, Image.ANTIALIAS) 

     w, h = image.size 

     new_image = Image.new('RGBA', size, (255, 255, 255, 255)) 
     new_image.paste(image, ((299 - w)/2, (299 - h)/2)) 

     index = 0 

     new_image_file_name = os.path.join(directory, file_name) 
     new_image.save(file_name, str(index) + ".jpg") 

     index += 1 

print ("Conversion process complete.") 
+0

Nizza. Aber ... was ist deine Frage? – agtoever

+0

Ich möchte wissen, ob jemand bessere Vorschläge hat, wie ich meine beabsichtigten Ergebnisse erreichen könnte :) – lostInEncryption

Antwort

1

Vom documentation:

Image.save(fp, format=None, **params)

Speichert dieses Bild unter dem Dateiname angegeben. Wenn kein Format angegeben ist, wird das Format, das verwendet werden soll, aus der Dateinamenerweiterung, wenn möglich, bestimmt.

Die korrekte Syntax für image.save ist:

new_image.save(file_name, 'JPG') 

Um eine Datei zu verschieben, können Sie shutil.move verwenden:

import shutil 
shutil.move(file_name, 'full/path/to/dst/') # the second argument can be a directory 
+0

danke! Aber meine Hauptfrage war, wie man Dateien in sequentieller Reihenfolge umbenennt und sie dann in ein anderes Verzeichnis verschiebt. – lostInEncryption

+0

@lostInEncryption Überprüfen Sie meine Bearbeitung? –

Verwandte Themen