Skip to main content

image and animation processing framework

Project description

pierogis

version docs

discord twitter

pierogis is a framework for image and animation processing. Ingredients that describe image processing functions can be assembled into recipes and used to cook an image or animation.

pip install pierogis
pierogis custom teton.png "resize --width 768 --height 768; sort; quantize; resize --scale 4" -o output.png
# or
pierogis custom teton.png recipe.txt -o output.png

recipe.txt

resize --width 768 --height 768;
sort;
quantize -c 000000 ffffff 668a61 cbb8a2 b6d655 434d1f 5fb7d2 6d8ab9 3876c1 515b5e a8725f d7b6aa 3c2329 f78693 637186 00407A;
resize -s 4;

sorted and quantized teton

install

install from a wheel with pip

pip install pierogis

Depends on numpy and PIL. PIL requires some external C libraries for handling image files. You probably don't have to worry about this. If you do, try a conda installation.

To build from source (either the repository or the sdist), you will need to install the rust stable toolchain.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install -r requirements.txt

pip install .

Note that the python package was previously called pyrogis. That was supposed to denote the difference between the package and the Rust algorithms (pierogis_rs) that it relied on.

These two parts were combined into one namespace in the 0.4.0 release, and the split naming became redundant.

Still, pip install pyrogis==0.4.0 will install pierogis.

features

  • CLI - Use a rich cli to cook à la carte recipes, or provide a recipe in a document (see docs)
  • Animations - Animations (gifs and movies) can be cooked in one command
  • Extendable - Easy to create custom manipulations (see docs)
  • Lazy Rendering - Render a manipulation after constructing your pipeline (see docs)
  • Numpy or Rust backend - Image processing functions use Numpy for (python relative) fast operations. Some ingredients use compiled Rust for more speed.

terminal screen

wires recipe

acknowledgements

The original python pixelsort package inspired this package. While the underlying algorithm of that package and of sort in this one is supposed to be functionally the same, details of the implementation may differ.

A quantization algorithm used in this package uses rscolorq, which is a Rust port of scolorq, itself an implementation of Spatial Color Quantization.

An algorithm called MMPX is used in this package to do 2x image magnification. It is implemented in a separate Rust package.

issues and contributing

When you encounter an error, there are some guidelines that will make it easier to help you:

  • Ensure that you are using the latest version of the package. It's early days so errors and updates will be frequent. Use pip uninstall pierogis then pip install pierogis --no-cache-dir to reinstall.
  • Provide the version of pierogis that you are using in issues to rule that out. pip list -> pierogis _._._
  • Provide the traceback or error message if relevant.
  • Provide your os and any other specific information about how you are trying to use the package.
  • Provide the code or the cli command that triggered the error.
  • If the problem is visual: that can be more difficult to debug. Share a link to an image hosting site if you want to share what you are seeing in an issue.
  • If you are getting different behavior than you expect: that could be an error or a feature.
  • If your problem is with installation: try conda, preinstall numpy and pillow, install the rust toolchain, and start praying. There will be a website with a visual editor for this software so stay tuned.

Hopefully all levels of skills can use this package. Any form of contributing is appreciated; passive-aggressive semi-anonymous thumbs down is not appreciated.

Everyone using and contributing to this package is doing it for the love of the game.

Don't feel like your issue is too small to make an issue. Pull requests are always welcome and anyone interested in dev work should join the discord.

Ingredient type algorithm/function suggestions can go in the ingredients channel. You can post your creations in the demo channel as well.

disclaimer

This library is licensed under the AGPL v3.

Art used for demos is the property of their respective owners.

The following statements are not necessarily legally binding. If they seem to contradict the license, follow the license.

The licenses of packages used by this software vary, but are understood to be compatible with AGPL. If you take issue with this package's use of other software regardless of legal concern, please reach out, and it can be removed from this package.

Also understand that there may be implications from those licenses on your use of this package.

Review the AGPL yourself if you intend to use this package in any software, but know that it was chosen to encourage that all related works be open source.

The use of AGPL does not mean that this cannot be monetized, but it does generally mean that you will need to share source code of improvements on this package; at least modules related to this package.

If your paid derivative work adds marginal value to what is included in this package, the author reserves the right to go to great lengths to make a free (and better) alternative to your derivative work.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pierogis-0.4.1.tar.gz (77.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pierogis-0.4.1-cp39-cp39-win_amd64.whl (248.1 kB view details)

Uploaded CPython 3.9Windows x86-64

pierogis-0.4.1-cp39-cp39-manylinux2010_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

pierogis-0.4.1-cp39-cp39-manylinux2010_i686.whl (1.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686

pierogis-0.4.1-cp39-cp39-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9

pierogis-0.4.1-cp39-cp39-manylinux1_i686.whl (1.2 MB view details)

Uploaded CPython 3.9

pierogis-0.4.1-cp39-cp39-macosx_12_0_arm64.whl (341.8 kB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

pierogis-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl (359.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

pierogis-0.4.1-cp38-cp38-win_amd64.whl (248.1 kB view details)

Uploaded CPython 3.8Windows x86-64

pierogis-0.4.1-cp38-cp38-manylinux2010_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

pierogis-0.4.1-cp38-cp38-manylinux2010_i686.whl (1.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

pierogis-0.4.1-cp38-cp38-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8

pierogis-0.4.1-cp38-cp38-manylinux1_i686.whl (1.2 MB view details)

Uploaded CPython 3.8

pierogis-0.4.1-cp38-cp38-macosx_12_0_arm64.whl (341.9 kB view details)

Uploaded CPython 3.8macOS 12.0+ ARM64

pierogis-0.4.1-cp38-cp38-macosx_10_9_x86_64.whl (358.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

pierogis-0.4.1-cp37-cp37m-win_amd64.whl (248.3 kB view details)

Uploaded CPython 3.7mWindows x86-64

pierogis-0.4.1-cp37-cp37m-manylinux2010_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

pierogis-0.4.1-cp37-cp37m-manylinux2010_i686.whl (1.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

pierogis-0.4.1-cp37-cp37m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7m

pierogis-0.4.1-cp37-cp37m-manylinux1_i686.whl (1.2 MB view details)

Uploaded CPython 3.7m

pierogis-0.4.1-cp37-cp37m-macosx_10_9_x86_64.whl (358.5 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file pierogis-0.4.1.tar.gz.

File metadata

  • Download URL: pierogis-0.4.1.tar.gz
  • Upload date:
  • Size: 77.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for pierogis-0.4.1.tar.gz
Algorithm Hash digest
SHA256 6bc323c304eaae6a945af5dc5b1633100cfa25cd0ab262fa3597ab51d5b2d527
MD5 1641a47b5af414b25acae7314803ed32
BLAKE2b-256 6ed947ee94fcd78fa5957324cca040aa071be68cc6f070e1df3eaa7f2a095fb9

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pierogis-0.4.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 248.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for pierogis-0.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0ba7a95893493dd1235fd5acef0bbfc320d83ed28c7f082b7f93bbc13d5c5105
MD5 9ba09a23b6bc0c25afb8e6a790c26360
BLAKE2b-256 c58bb9874848bed8618663b27a3be56032ea46ee0a2a57c27f9d26498eaa8229

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d309132bd872c30afa3c81513e27ec59f6bc5e35635ef4ff4932d5e32751f231
MD5 26d430b875ee0a3d075b62fc5fe15f8e
BLAKE2b-256 7d390c8126853bec4c8e278eb58405993e9eeffcc966bc614a87c11075663a33

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp39-cp39-manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp39-cp39-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9c97d89442715a2ea9d1de28c1da5d44b30f82eb3f174ae70f73a968d293fdab
MD5 d13b7b26baba2b12a9d1f3a04c130512
BLAKE2b-256 7df1a4f5274b5a26a31e34837142ab0c30abca6f22438792cec6f4f7d14cadb9

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp39-cp39-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 88cea71788c85e84804df4e2cbd10fad0de4226b8b9808aeff5ed4032af1c154
MD5 ffec17f834e1560eaa7055cfae157175
BLAKE2b-256 cbc97052d8ca72a2cc72db1a733538246ef068b799511e0e0c440169be167ad2

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp39-cp39-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp39-cp39-manylinux1_i686.whl
Algorithm Hash digest
SHA256 81b11e312e81630ce3294a0df909684cde2ad443b88b5aef22c57cb662abb9fb
MD5 b91f0bdda57d0e65da2a5418573b12f2
BLAKE2b-256 0c87591b87e13f4d575abf14e7e72ffe8795dc3fe4fa346199b3455791d9cd63

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 23178211864fa60fdd153fe55e4798d2aa5d784cc7e45fb84ad0f6f3e5b790a6
MD5 29e235c2f3c4c2027cf7eaff3ec5c48d
BLAKE2b-256 3e24b41114d13bbec6a3fa323e408f9fbd9c1f8b496b732575bb925d6927d8c2

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c30f45fd0714ce250f1fd9f795ce52e6fba6ce2044e9eb9fbf55b583a173b759
MD5 6595d63e91a531eca453ed5c3c398289
BLAKE2b-256 4246a1c4f45b916a80f7dc7494575d484165aa1845b13697540dab63a6a72715

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pierogis-0.4.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 248.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for pierogis-0.4.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ba51176598795e53914cbec22d3c61d765af97e6950babf9e02780f8a7cf8355
MD5 7a9081278a47d13f2b5b8ffae0a143e7
BLAKE2b-256 356f64122a6847dbf6ab31f32e8a0e67f11bb482fe02da927e25c579774e4a7e

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cebf3884836b176ed8af3eff8cb0b0f2871725094d390545fd47df7d7bd25754
MD5 47dd70a3befbf9f03e60b72044b6f5c4
BLAKE2b-256 25799e0435324b20f826b7be8568d6b6023c4a8e43bde2e63710902f686ebed6

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp38-cp38-manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a1e5c5cf7fc12aff9a9a3b9c1b27a47519ca4dd80cf8196395e2101372389c4d
MD5 6f0135799c30addc4f094409c5ffa1c1
BLAKE2b-256 f0d0115722d016aa4c284920c15996dc839989ee3a836bd7e305b5b2273ada16

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp38-cp38-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c412ed92927b86ab67795236b416ec24a8d9923dc18786728f88e4eeae0758c5
MD5 6beaa5a5398a68eddfd15d67d9868b89
BLAKE2b-256 c4db65b37bc2f2b1fbc591ed082edb5d419ab2ea7901cf1ab6485c135d29f6bf

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp38-cp38-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 1c026c5dca811d5683a58e77e66e035873d054467230f55bb428d4d695962c26
MD5 9436ac8539e3d9832bde2ceaed4c21dd
BLAKE2b-256 122a67be49ca85c96ebfaab8d6c19469bd5dc1df6aaaf9981fcca4e61f355f8f

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp38-cp38-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp38-cp38-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 65f82e8d88be4ee9dd43520d6527ded2a7c60c6e115101effc0122c4c9bb1837
MD5 4a194b8e34b5460710795879305df4fd
BLAKE2b-256 d6660e121bd1973d23c145f34d7ef0c8ae0c74da42ce7f3399f9c00e07a44009

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9fbf5da808adcec72459cdebadc8a95531f3e19b3439c17fc97539a0cc330451
MD5 717bc0a8254b1b3cb9dc57061a8f23c3
BLAKE2b-256 10d77eaf82b23e37a84110b705f2bdb9847e997235d8f80792da1d9b38cd5494

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pierogis-0.4.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 248.3 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for pierogis-0.4.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e386e84435b3a55d1c2e49da1b4631675f1779770ce9f9150292fa09c8f7c148
MD5 10ec9019e2d6bee3966a9a0eee804428
BLAKE2b-256 58ef5c6d127ced0f39c0800ed33752ec4fed74fcff11b1aff08465ec9c9d7cd5

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 38c076276497c74059e9a73c1a8d3d745b145e7ea9e29d8dd90f5e4c2a007669
MD5 888d4d5c806c3b5dab8924f46f819835
BLAKE2b-256 862b6e2e3126fd4786d5417c237971794cd0d3b1e461660b8fe9c36891e47e36

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp37-cp37m-manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c0b7b5befa1c3e481ec3501339e1bbdc07ec50be610911b13ca21d8dde69f147
MD5 069b832d06ecfc2d5cc8309d03abe4c3
BLAKE2b-256 30043ebefca9cacd1b7d4ca04535e29a6d07686182a3a1fe1eafb10938b8d6dd

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2f7ad5b5bb5722cb8855a8a8d2118264054095d1717428c2a781554a8d353342
MD5 fda0d7713fd28c726304f4c52e91861d
BLAKE2b-256 e092b1009e50ee80252c3a05ddff09b3ce10322dd26359b25b66cd6b375ee831

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp37-cp37m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 3226fb2f38fb4cdbd6ea5d5dab4d30dacbe248c3b01c323839ad7d0e35797b8c
MD5 48fd3a64d71006f1274e7baf8ec4cd7c
BLAKE2b-256 969bc116001165ad4e2979454c691c612ae80a14347da1c10f125f396c835428

See more details on using hashes here.

File details

Details for the file pierogis-0.4.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pierogis-0.4.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b9902092501516d409bf57bfacdd2b8f493f98850b57833f204ab7732c3d9d47
MD5 14f87b938400448c1b15c4afb2aea5fb
BLAKE2b-256 1adddfb95b6167ac385efe7d14ed3c4530842835929354dff5c6d5ecfeacaffa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page