Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 22, 2016 12:23:02

Antarius
Зарегистрирован: 2016-11-28
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать массив с изображениями

Здравствуйте.
Использую 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)

Офлайн

#2 Дек. 22, 2016 12:53:06

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Как сделать массив с изображениями

 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)

Офлайн

#3 Дек. 22, 2016 13:12:57

Antarius
Зарегистрирован: 2016-11-28
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать массив с изображениями

Спасибо!
А можно сделать так, чтобы переменная была не индексом созданного массива, а названием файла в виде строковой переменной?
Т.е. в процессе где-то присвается переменной допустим x='01d' и нужно вклеить элемент массива, который считывался из файла 01d.png.

Отредактировано Antarius (Дек. 22, 2016 13:23:13)

Офлайн

#4 Дек. 22, 2016 15:38:22

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Как сделать массив с изображениями

Переменная 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version