Форум сайта python.su
Здравствуйте.
Использую PIL
Как мне загрузить с диска в массив несколько изображений из файлов (png), а затем использовать одно изображение из этого массива, выбрав его индекс переменной?
Поясню:
im01d = Image.open('01d.png')
im01n = Image.open('01n.png')
im02d = Image.open('02d.png')
im02n = Image.open('02n.png')
im03d = Image.open('03d.png')
im03n = Image.open('03n.png')
im04d = Image.open('04d.png')
im04n = Image.open('04n.png')
im09d = Image.open('09d.png')
im09n = Image.open('09n.png')
…
image.paste(im01d, (400+pos*150,380, 472+pos*150,380+72), 0)
Надо, чтобы выделенное было переменной.
Или расскажите другой способ как получить доступ к изображению по значению переменной.
Спасибо.
Отредактировано Antarius (Дек. 22, 2016 12:33:08)
Офлайн
filenames = ['01d.png', '01n.png', '02d.png', '02n.png', '03d.png', '03n.png', '04d.png', '04n.png', '09d.png', '09n.png'] images = [Image.open(filename) for filename in filenames] for img in images: image.paste( img, (400+pos*150, 380, 472+pos*150, 380+72), 0)
Отредактировано Stright (Дек. 22, 2016 12:53:43)
Офлайн
Спасибо!
А можно сделать так, чтобы переменная была не индексом созданного массива, а названием файла в виде строковой переменной?
Т.е. в процессе где-то присвается переменной допустим x='01d' и нужно вклеить элемент массива, который считывался из файла 01d.png.
Отредактировано Antarius (Дек. 22, 2016 13:23:13)
Офлайн
Переменная img - не индекс, а объект Image. Может я не совсем правильно понял вас вопрос, можно сделать через dict:
filenames = ['01d.png', '01n.png', '02d.png', '02n.png', '03d.png', '03n.png', '04d.png', '04n.png', '09d.png', '09n.png'] images = {filename: Image.open(filename) for filename in filenames} for filename, img in images.items(): image.paste( img, (400+pos*150, 380, 472+pos*150, 380+72), 0)
Отредактировано Stright (Дек. 22, 2016 15:39:30)
Офлайн