pjimg Requirements¶
The purpose of this document is to detail the requirements for :mod:’pjimg’, a Python image and animation generator. This is an initial take for the purposes of planning. There may be additional requirements or non-required features added in the future.
Purpose¶
The purposes of pjimg
are:
Generate images and animations that involve simple patterns interacting,
Be a more accurate name than
pjinoise
was,Consolidate the separate “img*” modules.
Functional Requirements¶
The following are the functional requirements for pjimg
:
Generate images and animations of a given size.
Technical Requirements¶
The following are the technical requirements for pjimg
:
Provide a common namespace for the “img*” modules.
Consolidate common utilities used across the “img*” modules.
Design Discussion¶
The following is a deeper discussion of certain aspects of the
pjimg
design. This primarily exists as a place to talk
through design challenges in order do find solutions. It is not
intended to be comprehensive nor even completely accurate to the
final design.
Why?¶
Good question. I split up pjinoise
. Why am I bringing it back
with a different name?
The main reason is that the individual “img*” modules aren’t very
useful on their own. I suppose they could be used in someone else’s
image generation code, but is that really going to happen? Who
needs imgwriter
who isn’t implementing it on their own? It
just a wrapper around open-cv for file I/O.
Also, I just feel bad about using up the namespace of five different modules if I ever put this on PYPI. I’m not sure I’ll ever want to do that. But, if I do, I’d rather it all be one name.
How Do I Make Images with It?¶
pjinoise
had a configuration syntax that could be used to
generate images. The “img*” scraped that in favor of making every
image a Python script. So, what now?
I’m probably going to stick with Python scripts. The configuration
syntax was too much of a pain to manage. That said pjimg
can
still have some features that make writing those scripts easier.
And, who knows. Maybe a GUI can be set up for it eventually.
So, What Is pjimg
?¶
It is:
A namespace for the “img*” modules.
A common module to handle code shared between those modules.
Possibly some workflow and UI tools to make working with the modules easier.