Я пытаюсь создать скрипт, который изменяет контраст и резкость всех изображений в папке, и сохранить его в новой папке как filename_edited.jpg
Я использую Pythong 3.7, импортируяОС и ПИЛ. У меня есть папка с некоторыми изображениями - DJI_001.jpg, DJI_002.jpg и так далее. Папка с изображениями называется test.
Папка, в которую я хочу их отправить, называется 'novo' в .. \ test \ novo
Изначально у меня было это. Это работает, но сохраняет изображения в одной папке:
import PIL
from PIL import Image, ImageEnhance
import os.path, sys
path = "C:\\Users\\r o d r i g o\\Desktop\\001 - progamer\\98 - Image brightness\\test"
dirs = os.listdir(path)
def teste():
for item in dirs:
fullpath = os.path.join(path,item)
if os.path.isfile(fullpath):
img = Image.open(fullpath)
f, e = os.path.splitext(fullpath)
sharpness = ImageEnhance.Sharpness(img)
sharp = sharpness.enhance(10.0)
newimg = sharp
contrast = ImageEnhance.Contrast(newimg)
cont = contrast.enhance(2.3)
head, tail = os.path.split(fullpath)
cont.save(f + "_edited.jpg")
teste()
Так что после некоторых исследований я попытался разделить полный путь в голове и хвосте. Хвостовая переменная возвращает мне имя файла.
Я делал это так, что каждый раз, когда он зацикливался, он мог сохранить путь к файлу моей новой папки + tail.
Итак, я попробовал это:
def sha():
for item in dirs:
fullpath = os.path.join(path,item)
if os.path.isfile(fullpath):
img = Image.open(fullpath)
#f, e = os.path.splitext(fullpath) #don't need this here
sharpness = ImageEnhance.Sharpness(img)
sharp = sharpness.enhance(10.0)
newimg = sharp
contrast = ImageEnhance.Contrast(newimg)
cont = contrast.enhance(2.3)
head, tail = os.path.split(fullpath)
cont.save("C:\\Users\\r o d r i g o\\Desktop\\001 - progamer\\98 - Image brightness\\test\\novo" + tail)
print("this is the filepath: " + head)
print("this is the filename: " + tail)
sha()
Я думал, что это будет работать, но он сохраняет файлы в том же каталоге, что и novoDJI_001.jpg, novoDJI_002.jpg и т. Д.
Я добавил пару изображений, если это поможет:
Сохранение в той же папке и Попытка сохранения в новой папке
Итак, со второй попытки (больше похоже на 20-ую, но хорошо), как вы можете видеть, я инертировал путь к файлу, но новая папка с именем novo в \ test \ novo оказалась в имени файла.
Любая помощьочень признателен, я уверен, что это просто, но я потратил последние 5 часов на это, но я не могу понять, почему это происходит! Спасибо!