调整图像大小时无限循环

时间:2019-03-08 19:48:05

标签: python python-3.x image infinite-loop image-resizing

我正在运行我的代码以调整目录中所有图像的大小,但是代码会无限循环。调整图像的大小我只是想不通如何过一遍才停下来。另外,我想将输出指定为.jpg文件类型。

import os, sys
from PIL import Image
import glob as glob

MY_DIRECTORY = "C:\\Users\\rzara\\Desktop\\sample_skulls"
for root, subdirs, files in os.walk(MY_DIRECTORY):
    for filename in files:
        for filename in glob.glob(MY_DIRECTORY+"/*.jpg"):
            size = 250, 250
            file_parts = os.path.splitext(filename)
            outfile = file_parts[0] + '_250x250' + file_parts[1]
            try:
                img = Image.open(filename)
                img = img.resize(size, Image.ANTIALIAS)
                img.save(outfile)
            except IOError as e:
                print("An exception occured '%s'" %e)

我尝试将保存行更改为:

img.save(outfile,'jpg')

但这会导致以下错误:

line 1983, in save 
save_handler = SAVE[format.upper()]
KeyError: 'JPG'

2 个答案:

答案 0 :(得分:0)

您能否在程序末尾添加以下3行以查找尝试可能遇到的任何其他错误?

    except Exception as message:
        print('general exception')
        print(message)

答案 1 :(得分:0)

for filename in files:
    for filename in glob.glob(MY_DIRECTORY+"/*.jpg"):

您从files获取了一个文件名,但立即用来自其他来源的文件名的序列替换了它。实际上,尽管这不是一个无限循环,但它强烈表明您存在严重的结构错误。