Ugrás a fő tartalomra

Animált GIF-be folyamat ábra készítés

 Animált GIF-be folyamat ábra készítés


🧰 Lehetséges eszközök és könyvtárak

1. Matplotlib + Pillow (GIF animációhoz)

  • Statikus folyamatábra képkockák generálása matplotlib-pel.

  • Ezekből animált GIF készítése Pillow-lal.

2. Manim (Matematikai animációs könyvtár)

  • Nagyon rugalmas, akár ikonokat és vonalakat is animálhatsz.

  • Videó formátumban exportálható.

3. Plotly + Dash (Webes interaktív megoldás)

  • Interaktív folyamatábrák, akár animációval.

  • Webes megjelenítéshez ideális.

4. Aspose.Diagram for Python

  • Professzionális diagramgenerálás, akár Visio-szerű folyamatábrák.

  • Exportálható SVG, PNG, PDF stb.


Minta



import matplotlib.pyplot as plt
from PIL import Image
import os

# Lépések definiálása
steps = ["Start", "Input", "Process", "Decision", "End"]
images = []

# Mappa létrehozása
os.makedirs("frames", exist_ok=True)

# Képkockák generálása
for i, step in enumerate(steps):
    fig, ax = plt.subplots(figsize=(6, 4))
    ax.set_xlim(0, 10)
    ax.set_ylim(0, 10)
    ax.axis('off')

    # Előző lépések megjelenítése
    for j in range(i + 1):
        ax.text(5, 9 - j*2, steps[j], fontsize=14, ha='center', bbox=dict(boxstyle="round", facecolor="lightblue"))
        if j > 0:
            ax.annotate("", xy=(5, 9 - (j-1)*2 - 0.5), xytext=(5, 9 - j*2 + 0.5),
                        arrowprops=dict(arrowstyle="->", lw=2))

    # Mentés
    filename = f"frames/frame_{i}.png"
    plt.savefig(filename)
    images.append(Image.open(filename))
    plt.close()

# GIF mentése
images[0].save("folyamatabra.gif",
               save_all=True,
               append_images=images[1:],
               duration=800,
               loop=0)


import matplotlib.pyplot as plt
from PIL import Image
import os

# Lépések definiálása
steps = ["Start", "Input", "Process", "Decision", "End"]
images = []

# Mappa létrehozása
os.makedirs("frames", exist_ok=True)

# Képkockák generálása
for i, step in enumerate(steps):
    fig, ax = plt.subplots(figsize=(6, 4))
    ax.set_xlim(0, 10)
    ax.set_ylim(0, 10)
    ax.axis('off')

    # Előző lépések megjelenítése
    for j in range(i + 1):
        y_pos = 9 - j * 2
        ax.text(5, y_pos, steps[j], fontsize=14, ha='center',
                bbox=dict(boxstyle="round", facecolor="lightblue"))

        # Nyíl az előző elemhez (felülről lefelé)
        if j > 0:
            ax.annotate("",
                        xy=(5, y_pos + 1.2),  # nyíl kezdete (felül)
                        xytext=(5, y_pos + 2 - 0.2),  # nyíl vége (alul)
                        arrowprops=dict(arrowstyle="->", lw=2))

    # Mentés
    filename = f"frames/frame_{i}.png"
    plt.savefig(filename)
    images.append(Image.open(filename))
    plt.close()

# GIF mentése
images[0].save("folyamatabra.gif",
               save_all=True,
               append_images=images[1:],
               duration=800,
               loop=0)


















Megjegyzések