Skip to content
An animated image maker.
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
nummu
tests
.gitignore
CHANGELOG.md
LICENSE
README.md
pyproject.lock
pyproject.toml
tox.ini

README.md

nummu (南無)

An animated image maker.

NOTE: this project in WIP and thus interface might change a lot. Be cautious when using in production.

Image Script
helloworld examples/helloworld.py
line examples/line.py
rect examples/rect.py
bubblesort Bubble Sort
heapsort Heap Sort
insertionsort Insertion Sort
mergesort Merge Sort
quicksort Quick Sort
selectionsort Selection Sort
examples/sort.py
image examples/image.py
text examples/text.py

Install

$ pip install nummu

Usage

Nummu is simply a framework so you might want to implement a class having these methods: update(delta), draw(palette). None of them are absolutely required.

class HelloWorld:

    def __init__(self):
        # Do initial work here
        self.position = 0

    def update(self, delta):
        # Do some calculation before draw each frame.
        # The delta is in millisecond unit.
        #
        # Don't forget to raise StopIteration somewhere!
        #
        self.position += delta
        if self.position >= 100:
            raise StopIteration

    def draw(self, pallete):
        # Pallete is simply a numpy.zeros instance.
        # Overwrite any pixels as you want.
        #
        pallete[:, self.position, :] = 255

Basic usage:

# import nummu
from nummu import Nummu

# set file size
nm = Nummu(100, 100)

# add drawer defined previously
nm.add(HelloWorld())

# export to gif
nm.export('helloworld.gif', delay=5)

Check the examples in project repo, and hopefully it might help you!

Develop

$ poetry develop
$ poetry run python examples/helloworld.py

Test

Currently nummu support running on 3.6, 3.7

$ pyenv install 3.6.5
$ pyenv install 3.7.0b2
$ pyenv local 3.6.5 3.7.0b2
$ export PATH=$(pyenv root)/shims:$PATH
$ tox
py36 runtests: commands[0] | poetry develop
py36 runtests: commands[0] | poetry run pytest
py37 runtests: commands[0] | poetry develop
py37 runtests: commands[0] | poetry run pytest
  py36: commands succeeded
  py37: commands succeeded
  congratulations :)

Credit

Thanks Pillow, numpy, numpngw and array2gif! Nummu stands on the shoulder of these giants!

You can’t perform that action at this time.