einguteswerkzeug (egw
) is a tool for creating minimalistic visual artworks in
printing quality - and learning and mixing fun to use technologies
full-stack around it (raspi, webapis, docker, serverless computing, flutter). :)
egw
can be used for creating high-quality art prints
or just for giving your photos or contactsheets a fairly well & individual vintage polaroid style 1. einguteswerkzeug provides some phonky filters and generative art capabilities mostly based on wonderfull open-source-projects and inspiring blog-articles
around (see credits & thanks). in short the software provides:
- generative-art-"generators" which are fun to play with
- chainable filters (
--filter f1,f2,...,fN
) - reading & processing EXIF-data
- lightweight plugin-framework - simple to use (and write) filters & generators
- vintage polaroid style supporting (high-res) templates
- supports your favorite (truetype-)font
--help
-option :) + usage-examples as shellscripts
egw
is beta-software and therefore some interface-things will
change for sure - but for now it already works fine for me. Maybe it
can be usefull for you too, especially if you like to tinker with code.
Things are simple (here... <2000 lines of core-code):
input (generator|image) [--> filter(s) & filter-params] --> paste into template --> output (image)
# -- fetch latest source
$ git clone --recurse-submodules -j8 https://github.com/s3h10r/einguteswerkzeug.git
$ cd einguteswerkzeug
# -- install & build into a dedicated virtualenv
$ python3 -m venv venv
$ source venv/bin/activate
(venv) $ ./build.sh
# -- ready to rumble! (:
(venv) $ egw
Usage:
egw <source-image> --output=<filename>
egw (<source-image> | --generator=<str>) [--output=<filename>]
egw (<source-image> | --generator=<str>) [--config=<fqfn>] [--template=<str>] [-- > \noframe]
[--filter <name>] [--params-filter <fparams>] [--params-generator <params>]
[--title=<str>] [--title-meta] [--font=<fqfn>] [--text-color=<rgb>]
[--alpha-blend=<float>] [--border-size=<int>] [--border-color=<rgb>]
[--size-inner=<n>] [--max-size=<w>]
[--crop | --nocrop] [--alignment=<str>] [--clockwise | --anticlock] -o <fout>
[--seed=<int>]
Have fun! (:
(venv) $ egw --shell
It's fun to chain some of the provided filters to get good results
but to get most out of egw
use its lightweight plugin-mechanism to simply roll your own plugin(s) in Python.
Contributions are welcome and they are greatly appreciated!
Please feel free to send a pull-request and use the issue tracker.
Some examples of works i am doing with einguteswerkzeug
:
To get an appealing rugged analogue style which is good enough for large prints high-res scans of polaroid frames are required. the ones i use for now (and include the confs for) can be downloaded here for free
- but they are not licensed under CreativeCommons or alike... If you own a good scanner and could provide some high-res scans of polaroid frames this would be awesome! (:
You do like einguteswerkzeug and want to support its development? Please consider a small donation.
Thank you very much!
The ASCII-art filter relies on codesnippets from the following Open Source projects:
- asciify
- ImageToAscii Copyright (c) 2018 Jianzhu Guo, MIT License
Most filters are adopted from: https://github.com/Tinker-S/SomeImageFilterWithPython
- The quads-filter is a quickndirty py3-port of the wonderfull code by Michael Fogleman
The generator sprites
is made with code by Eric Davidson.
The generator psychedelic
is the wonderfull code of "Random (Psychedelic) Art, and a Pinch of Python" by Jeremy Kun.
The generator squares+circles
is heavily inspired by Kevin Howbrook's Squares
The generator mondrian
is an adoption of the Nifty Assigment Mondrian Art - Beautiful Recursion by Ben Stephenson (Stanford University)
Thank you guys! Live long and prosper!
All the crap and bugs in the code while quickly porting some old stuff to Py3 is made by me of course. Please feel free to refacture, fix, tinker, ...
- please see CHANGELOG.md
einguteswerkzeug is made with <3, maintained & developed by Sven Hessenmüller.
einguteswerkzeug uses some excellent open source software and snippets - please take a look at Credits & Thanks for the complete list of codes & inspirations the author is gratefull for being allowed to use and remix in this software product.
MIT License
Copyright (c) 2019-2021 Sven Hessenmüller [email protected]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
[1]: The polaroid style is a feature
used by default because i really love the polaroid style and
find it appealing & usefull for contactsheets and alike - it can be disabled
of course (option --noframe
).