A (P)iet (Int)erpreter with a builtin png-decoder.
Piet is a programming language in which programs look like abstract paintings. The language is named after Piet Mondrian, who pioneered the field of geometric abstract art.
cargo install pint
or you can clone this repo and build it from source
pint some_test.png
The codel-size is inferred automatically. You can also pass it manually:
pint some_test.png -c <codel_size>
Since the png-decoder is built from scratch it only implements the most common Png color-types TruecolorRGB and Indexed. There is currently no support for gifs.
Typing make
shows you the options for this crate.
$ make unit_test
or
$ cargo t
There also integration tests that check the result of the test-images located in tests/fixtures
$ make integration_tests
or
$ bash tests/integration_tests
I would appreciate any kind of contribution (as long as the tests pass :)) or feedback since this is my first time writing rust. Maybe there is somebody willing to finish the png decoder to support all kinds of pngs