Как я могу заставить свой цикл перебирать мой список? - PullRequest
0 голосов
/ 24 мая 2019

Я новичок в программировании и Python.Я построил цикл, который создает мозаичное изображение, используя одно изображение, и он прекрасно работает.

for left in range(0,iWidth,(logoWidth + xOffset)):
    for top in range (0,iHeight,(logoHeight + yOffset)):
        icopyIm2.paste(logo,(left,top))

icopyIm2.save("tiled_image.png")

Однако я бы хотел использовать серию изображений, чтобы каждая плитка отличалась.В параметрах "paste" переменная "logo" представляет собой только одно изображение.Я бы хотел, чтобы цикл перебирал список, например:

imageList = [pic1.png, pic2.png, pic3.png, pic4.png]

Я неуверен, как этого добиться.

1 Ответ

1 голос
/ 24 мая 2019

Как указано в комментариях, вам нужно выяснить, как вы хотите обрабатывать различные изображения, когда вы их размещаете.Как вы хотите, чтобы он выглядел, если ваш кадр 3х3, а у вас 5 изображений?

Я думаю, что суть вашего вопроса - настройка функции с параметрами.Приведенный ниже пример создает мозаичные изображения из трехбуквенных слов, которые, я думаю, соответствуют вашему вопросу.Я выбрал просто циклически повторять список входов - без шаблона.

def make_box(width, height, hits):
    hit_limit = len(hits)
    count = 0
    for i in range(height):
        for j in range(width):
            print(hits[count % hit_limit], end=' ')
            count += 1
        print()

hit_list = ['bop', 'pow', 'zap', 'bam', 'oof']
box_h = 3
box_w = 4

make_box(box_w, box_h, hit_list)

Вывод:

bop pow zap bam 
oof bop pow zap 
bam oof bop pow 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...