Как зациклить все изображения и добавить границу для всех изображений в Python? - PullRequest
0 голосов
/ 18 октября 2019

Я работаю над редактированием изображений в Python 3.7. У меня есть функция, которая добавляет границы для всех изображений. Но он возвращает только первое изображение в папке и существует. Это моя функция:

from PIL import Image
import cv2
import numpy as np
import datetime

time = datetime.datetime.now()
def img_filter(img_in,border):
    img = Image.open(border)
    background = Image.open(img_in)
    size = background.size
    img = img.resize(size,Image.ANTIALIAS)
    background = background.resize(size,Image.ANTIALIAS)
    background.paste(img,(0,0),img)
    saved = background.save(f"./img/1{time}.jpg")
    print(saved)
    img.close()

И вот мой код:

path = glob.glob("./img/*.jpg")
for img in path:
    with open(img, 'rb') as file :
        img = Image.open(file)
        img_filter(img,'v.png')

пожалуйста, помогите мне.

1 Ответ

1 голос
/ 18 октября 2019

Переменная time является глобальной. Таким образом, значение остается одинаковым для всех изображений. Либо вы можете создать переменную времени внутри метода img_filter, либо вы можете создать эту переменную внутри цикла for и передать ее в качестве параметра методу.

Лично я бы предпочел создать curr_timeпеременная внутри цикла for.

...