πŸ”§ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: простой ΠΈ понятный Π³Π°ΠΉΠ΄

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ Π² Python, Π²Π°ΠΌ потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ imageio. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import imageio

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ списка Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
images = ['image1.png', 'image2.png', 'image3.png']

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡ„ΠΊΠΈ ΠΈΠ· списка ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
imageio.mimsave('animation.gif', [imageio.imread(image) for image in images], duration=0.5)
  

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ 'image1.png', 'image2.png' ΠΈ 'image3.png'. Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mimsave ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ imageio сохраняСм эти изобраТСния Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡ„ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ 'animation.gif'.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡ„ΠΊΠΈ - это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Тивости ΠΈ интСрактивности ΠΊ вашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ Python. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ с использованиСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python.

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ imageio

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом являСтся установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ imageio с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip install imageio

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… зависимостСй

ПослС установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ imageio, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ зависимости:

import imageio
import os

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡ„ΠΊΠΈ ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Допустим, Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ ΠΈΠ· этих ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

def create_gif(image_folder, gif_name):
    images = []
    for filename in os.listdir(image_folder):
        if filename.endswith(".png"):
            images.append(imageio.imread(os.path.join(image_folder, filename)))
    imageio.mimsave(gif_name, images, duration=0.5)

create_gif("ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΏΠ°ΠΏΠΊΠ΅_с_изобраТСниями", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Π³ΠΈΡ„ΠΊΠΈ.gif")

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ create_gif, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ с изобраТСниями ΠΈ имя Π³ΠΈΡ„ΠΊΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΠ΄Π΅ΠΌ ΠΏΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΈ добавляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ изобраТСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG Π² список ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. НаконСц, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ imageio.mimsave для сохранСния списка ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡ„ΠΊΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠ°Π΄Ρ€ΠΎΠ².

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡ„ΠΊΠΈ с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ matplotlib. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

import matplotlib.pyplot as plt
import numpy as np

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ для Π³Ρ€Π°Ρ„ΠΈΠΊΠ°
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ сохраняСм Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡ„ΠΊΠΈ
fig, ax = plt.subplots()
line, = ax.plot(x, y)

def update(frame):
    line.set_ydata(np.sin(x + frame / 10.0))
    return line,

ani = FuncAnimation(fig, update, frames=100, interval=50)
ani.save("анимация.gif", writer='imagemagick')

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ matplotlib, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ синусоиды. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, обновляя Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ FuncAnimation для создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ani.save для сохранСния Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡ„ΠΊΠΈ.

Π’Ρ‹Π²ΠΎΠ΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ imageio для создания Π³ΠΈΡ„ΠΊΠΈ ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ matplotlib для создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’Π°ΡˆΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Python станут Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΈ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΈΡ„ΠΎΠΊ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GIF Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ python

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ gif Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π½Π° ΠΏΠ°ΠΉΡ‚ΠΎΠ½

09. Tkinter. Анимация

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”Ž Как ΠΏΠΎΠ½ΡΡ‚ΡŒ простыС числа Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ πŸ”’

🐍 Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ Π½Π° хостингС: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ инструкции для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

✨Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π»ΠΎΡ‡ΠΊΡƒ Python: простой шаг Π·Π° шагом гайд✨

πŸ”§ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΈΡ„ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: простой ΠΈ понятный Π³Π°ΠΉΠ΄

🐍 Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: ПолноС руководство ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π² Python слова с Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ?

😍 Как ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Python 3 с нуля ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ? πŸ’ͺ Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ Π³ΠΈΠ΄ ΠΈ совСты для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…!