Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Phyton создание GIF / 5 сообщений из 5, страница 1 из 1
24.06.2021, 05:08
    #40079730
mmm555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phyton создание GIF
Есть код
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
from PIL import Image, ImageDraw, ImageFont
import random

images = []


textnew=['Первая строка',
         'Вторая строка',
         'Третья строка',
         'Четвертая строка',
         'Пятая строка',
         'Шестая строка']

for c,value in enumerate(textnew):
    image = Image.new(mode="RGB", size=(320, 320), color="black")
    draw = ImageDraw.Draw(image)
    fnt = ImageFont.truetype('font.ttf', size=20)
    draw.text((0, 20*c), value, fill=(random.randint(0, 255),random.randint(0, 255) , random.randint(0, 255)), font=fnt)
    images.append(image)
    images[c].save('draw-ellipse-rectangle-line'+str(c)+'.jpg', quality=95)

images[0].save("My.gif", save_all=True, append_images=images[1:], duration=100, loop=1, format="GIF")


он создает gif анимированный, каждая строка появляется один раз(потому что пересоздаётся image) , если его преобразовать в
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
from PIL import Image, ImageDraw, ImageFont
import random

images = []

image = Image.new(mode="RGB", size=(320, 320), color="black")
draw = ImageDraw.Draw(image)
fnt = ImageFont.truetype('font.ttf', size=20)


textnew=['Первая строка',
         'Вторая строка',
         'Третья строка',
         'Четвертая строка',
         'Пятая строка',
         'Шестая строка']

for c,value in enumerate(textnew):

    draw.text((0, 20*c), value, fill=(random.randint(0, 255),random.randint(0, 255) , random.randint(0, 255)), font=fnt)
    images.append(image)
    images[c].save('draw-ellipse-rectangle-line'+str(c)+'.jpg', quality=95)

images[0].save("My.gif", save_all=True, append_images=images[1:], duration=100, loop=1, format="GIF")


gif создаться, но не анимированный, в чем ошибка , мне необходимо чтобы и старые строчки оставались и новые появлялись?
...
Рейтинг: 0 / 0
24.06.2021, 21:36
    #40079982
iot
iot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phyton создание GIF
mmm555,

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
from PIL import Image, ImageDraw, ImageFont
import random
fnt = ImageFont.truetype('font.ttf', size=20)
textnew=['Первая строка', 'Вторая строка', 'Третья строка', 'Четвертая строка', 'Пятая строка', 'Шестая строка']
images = []
for c,value in enumerate(textnew):
	image = Image.new(mode='RGB', size=(320, 320), color='black')
	draw = ImageDraw.Draw(image)
	draw.text((0, 20*c), value, fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), font=fnt)
	images.append(image)
images[0].save('test.gif', save_all=True, append_images=images[1:], duration=100, loop=0, format='GIF')
...
Рейтинг: 0 / 0
25.06.2021, 01:40
    #40079998
mmm555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phyton создание GIF
iot,
Cпасибо за ответ. Первый мой код работает именно также. Почему второй не работает. В итоге мне нужно добиться чтобы и старые строчки было видно и появление новых анимировалось. Сейчас же появляются только новые, старые затираются.
...
Рейтинг: 0 / 0
25.06.2021, 11:09
    #40080061
iot
iot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phyton создание GIF
mmm555,

второй ваш вариант не генерит доп фреймы. для видимости всех строк одновременно попробуйте добавить альфа канал во фреймы, сам не делал такого, скорее всего где-то здесь
Код: python
1.
fill=(random.randint(0, 255),random.randint(0, 255) , random.randint(0, 255))

нужно добавить значение прозрачности
...
Рейтинг: 0 / 0
25.06.2021, 11:16
    #40080067
iot
iot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phyton создание GIF
mmm555,

и второй вариант, возможно как вы пытались, это создание нового фрейма копированием из предыдущего
Код: python
1.
image_next = image_prev.copy()
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Phyton создание GIF / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]