Как добавить gif-изображения к png?
Есть такой код:
from PIL import Image, ImageSequence
GIF_PATH = "C:/Users/RAINGM/desktop/mercy.gif"
IMAGE_PATH = "C:/Users/RAINGM/desktop/background.png"
gif = Image.open(GIF_PATH)
image = Image.open(IMAGE_PATH).resize((120, 120)).convert("P")
frames = [f.copy() for f in ImageSequence.Iterator(gif)]
for i, frame in enumerate(frames):
frame = frame.convert("RGBA")
frame.paste(image, (50, 50))
frames[i] = frame
frames[0].save("C:/Users/RAINGM/desktop/output.gif", save_all=True, append_images=frames[1:])
При выполнении я получаю gif, в нём бэкграунд, как это выполнить наоборот, чтобы бэкграунд был позади?
Ответы (1 шт):
Автор решения: Peter Lavreniuk
→ Ссылка
Вот решение:
from PIL import Image, ImageSequence
GIF_PATH = "mercy.gif"
IMAGE_PATH = "background.png"
gif = Image.open(GIF_PATH)
image = Image.open(IMAGE_PATH).resize((200, 200)).convert("P")
frames = [f.copy() for f in ImageSequence.Iterator(gif)]
for i, frame in enumerate(frames):
temp = Image.new("RGB", (200, 200), color="black")
temp.paste(image, (0, 0))
frame = frame.convert("RGBA")
temp.paste(frame, (0, 0), frame)
frames[i] = temp
frames[0].save("output.gif", save_all=True, append_images=frames[1:])
Необходимо просто делать темповую картинку. Туда вначале кидать png, а потом фрейм, с учетом маски!
Итоговая гифка:
P.S. она должна быть побольше, просто SO не разрешает выше 2мб прикладывать графические файлы. ну и чисто рандомные картинки подобрал.
