2017-01-12 5 views
1

Ich lerne Python und versuchen, Kissen verwenden, um Bilder in einem Ordner zu skalieren, dann speichern Sie sie in einem anderen Ordner mit dem gleichen Dateinamen. Allerdings läuft das Programm gut, wenn ich den Zielordner zu überprüfen, da sind keine Bilder ... Mein Code ist wie folgt:Python Pillow Größe ändern Bilder Problem: es läuft gut, aber es gibt keine Bilder

from PIL import Image 
import os, glob, sys 

src_path = "D:/Test_A/src/*.png" 
dst_path = "D:/Test_A/dst/" 
img_list = glob.glob(src_path) 

for XXPNG in img_list: 
    fn = os.path.basename(XXPNG) 
    im = Image.open(XXPNG) 
    print(fn, im.size) 
    nim = im.resize((119, 119), Image.ANTIALIAS) 
    nim.save("dst_path","PNG") 
print("Resize Done") 

Bitte helfen Sie mir meine Fehler zu finden, oder geben mir jede beraten. Vielen Dank für die Hilfe und tragen mein schlechtes Englisch.

+0

Sie in Dateinamen vergessen Endung 'speichern ("dst_path.png" , "PNG") ' – furas

+0

' "dst_path" 'in Ihrem' save() 'ist eine Norm al Text, nicht Variable 'dst_path'. Sie benötigen 'dst_path' ohne' '' und Dateiname - 'nim.save (dst_path + fn," PNG ")' – furas

Antwort

1

"dst_path" mit " ist ein normaler Text, nicht variabel dst_path - so sparen Sie in der Datei mit dem Namen "dst_path".

Sie benötigen dst_path ohne " - und Dateiname

nim.save(dst_path + fn, "PNG") 

oder mit os.path.join()

nim.save(os.path.join(dst_path, name), "PNG") 

Code:

from PIL import Image 
import os, glob, sys 

src_path = "D:/Test_A/src/*.png" 
dst_path = "D:/Test_A/dst/" 
img_list = glob.glob(src_path) 

for fullpath in img_list: 
    name = os.path.basename(fullpath) 
    im = Image.open(fullpath) 

    print(name, im.size, '=>', os.path.join(dst_path, name)) 

    nim = im.resize((119, 119), Image.ANTIALIAS) 
    nim.save(os.path.join(dst_path, name), "PNG") 
    #nim.save(dst_path + name, "PNG") 

print("Resize Done") 
Verwandte Themen