簡體   English   中英

Python/PIL 調整所有子文件夾中所有圖像的大小並保存為新文件名

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

我將使用一組子文件夾調整位於桌面中的圖像文件的大小。

我嘗試以下命令,它可以在不重命名保存新的情況下工作。

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()

我的問題是如何添加正確的命令來使用 append 'f + _thumbnail' +.jpg保存重新調整大小的圖像文件? 例如file1 > file1_thumbnail.jpg

我嘗試將以下內容添加到行print(filename)但顯示錯誤。

             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)

我可以知道如何解決嗎?

非常感謝

您可以為此使用 python 對字符串進行切片 - 您可以將代碼修改為 -

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()

“.jpg”可以在最后切片。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM