Если вы хотите присвоить изображениям имя с порядковым номером, чем объединять имя файла и счетчик:
image_no = 1
for image in images:
# [...]
name = 'C:/Users/marialavrovskaa/Desktop/Images/file_' + str(image_no) + '.jpg'
imgResult.save(name, 'JPEG')
image_no += 1
Поскольку формат изображений PNG , и они должны быть сохранены как JPEG
, формат должен быть преобразован из RGBA в RGB , .convert('RGB')
.Обратите внимание, что при сохранении изображения RGBA
в JPGE может возникнуть ошибка:
import glob
from PIL import Image
images = glob.glob("C:/Users/marialavrovskaa/Desktop/Images/*.png")
image_no = 1
for image in images:
with open(image,"rb") as file:
img = Image.open(file)
imgResult = img.resize((800,800), resample = Image.BILINEAR).convert('RGB')
name = 'C:/Users/marialavrovskaa/Desktop/Images/file_' + str(image_no) + '.jpg'
imgResult.save(name, 'JPEG')
image_no += 1
print("All good")
Кстати, если имя файла должно быть сохранено, а изображение просто должно быть сохранено в файлс другим расширением, то расширение можно разделить из файла на .splitext
:
import os
imgResult = img.resize((800,800), resample = Image.BILINEAR).convert('RGB')
name = os.path.splitext(image)[0] + '.jpg'
imgResult.save(name, 'JPEG')
Если вы хотите сохранить поле в другомпуть, с другим расширением, затем вам нужно извлечь имя поля из пути.
См. os.path
.Разделить путь от имени и расширения файла на os.path.split(path)
, что возвращает кортеж из пути и имени.
например
>>> import os
>>> os.path.split('c:/mydir/myfile.ext')
('c:/mydir', 'myfile.ext')
Разделить имя файла и расширение на os.path.splitext(path)
:
>>> os.path.splitext('myfile.ext')
('myfile', '.ext')
Применительно к вашему коду это означает, где file
- путь, имя и расширение файла исходного изображения:
import glob
from PIL import Image
images = glob.glob("C:/Users/marialavrovskaa/Desktop/Images/*.png")
image_no = 1
for image in images:
with open(image,"rb") as file:
img = Image.open(file)
imgResult = img.resize((800,800), resample = Image.BILINEAR).convert('RGB')
image_path_and_name = os.path.split(file)
image_name_and_ext = os.path.splitext(image_path_and_name[1])
name = image_name_and_ext[0] + '.png'
file_path = os.path.join(path, name)
imgResult.save(file_path , 'JPEG')
image_no += 1
print("All good")