ディレクトリ内のすべてのファイル(101個のファイルは既に0.jpgから100.jpgまで順番に並べられています)を開くプログラムをコーディングしていますそのファイルを比率に基づいてサイズ変更した後、列挙されたforループのインデックスに従って出力を別のディレクトリに保存します。なぜ私のインデックスとファイル名が一致しないのか混乱しています。 forループのインデックスは0から100までで、ファイル名も同じです。 forループは、0から100までの順番でソースイメージファイルを呼び出し、インデックスのためにそれらを順番に保存する必要があります。PIL画像が間違った順序で保存されています(ループ用、列挙型インデックス)
しかし、プログラムを実行すると、ソースイメージ100(サイズ変更されたイメージのサイズが最も大きいイメージ)は3.jpgとして保存され、4番目に小さいイメージになりました。イメージ3は、イメージ24となりました。しかし、より大きな画像では、順序は正しい。私もファイルをソートすることを確認しました
os.makedirs("resized images")
try:
files = os.listdir(os.path.join(os.getcwd(),"source images"))
except IOError:
print('No folder found.')
input('Enter any key to exit: ')
exit()
xDimension=dimensions[0]
yDimension=dimensions[1]
print(xDimension)
print(yDimension)
totalViews=0
for item in d:
totalViews+=d[item]
files.sort()
for index, file in enumerate(files):
path = os.path.join(os.getcwd(), "source images", file)
img = Image.open(path)
ratio=(d[index]/totalViews)
print(ratio)
print(str(index))
resizedX=int(math.ceil((xDimension*ratio)))
resizedY=int(math.ceil((yDimension*ratio)))
resized=img.resize((resizedX, resizedY))
resized.save("resized images/"+str(index)+".jpg", 'JPEG')
#image 100 in source images becomes image 3 in resized images, making image 3 become image 24
:
は、ここに私のコードです。比率とインデックスはすべて正しく印刷されます。ここで何が起こっていますか?
files.sort()の前に(ファイル)を印刷するとどうなりますか?後に(ファイル)を印刷するとどうなりますか? – Hugo