简体   繁体   中英

Python/PIL Resize all images in all subfolder and save as new file name

I am going to resize image file which located in Desktop with set of subfolder.

I try following command and it works without rename save new.

from PIL import Image
import os, sys
import glob
root_dir='./././Desktop/python/'

def resize():
    for filename in glob.iglob(root_dir + '**/*.jpg', recursive=True):
        print(filename)
        im = Image.open(filename)
        imResize = im.resize((450,600), Image.ANTIALIAS)
        imResize.save(filename , 'JPEG', quality=90)
        
resize()

My question is how can I add the correct command to save the renewe resized image file with append 'f + _thumbnail' +.jpg ? Eg file1 > file1_thumbnail.jpg

I tried add followings to row print(filename) but show error.

             f, e = os.path.splitext(path+item)
             size = im.size
             ratio = float(final_size) / max(size)
             new_image_size = tuple([int(x*ratio) for x in size])
             im = im.resize(new_image_size, Image.ANTIALIAS)
             new_im = Image.new("RGB", (final_size, final_size))
             new_im.paste(im, ((final_size-new_image_size[0])//2, (final_size-new_image_size[1])//2))
             new_im.save(f + 'resized.jpg', 'JPEG', quality=90)

May I know how can fix it?

Many Thanks

You can use python slicing of strings for this - You can modify your code to -

from PIL import Image
import os, sys
import glob
root_dir='./././Desktop/python/'

def resize():
    for filename in glob.iglob(root_dir + '**/*.jpg', recursive=True):
        print(filename)
        im = Image.open(filename)
        imResize = im.resize((450,600), Image.ANTIALIAS)
        filename = filename[:-4] + " _thumbnail" + filename[-4:]
        imResize.save(filename , 'JPEG', quality=90)
    
resize()

The ".jpg" can be sliced at the end.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM