5 unstable releases
0.3.1 | Apr 26, 2023 |
---|---|
0.3.0 | Apr 13, 2023 |
0.2.1 | Apr 2, 2023 |
0.2.0 | Mar 7, 2023 |
0.1.0 | Nov 17, 2022 |
#271 in Images
33 downloads per month
18KB
426 lines
Dithor
What is this library
Basic principles
This library rewrite an image given as input using only two colors a la dithering.
The image is spit in many squares of 5x5 pixels. For each of those squares the average relative luminance is calculated.
This luminance is then used to assign a level to the square. The level is between 0 and 9, 0 for completely bright and 9 fully dark.
The content of the square is then filled with the following pattern (depending on the level) :
Here's a picture showing the same patterns on a bigger surface :
Finally here's an example using the painting "The swan, no 1" from Hilma af Klint :
Using colors
When the third parameter is true the output will be in color, the brightest and darkest colors from the 25 pixels are used to fill the patterns showed above.
How to use it
To use this library you can simply call it using :
dithor::dithor("input.jpg", "output.jpg", true, true);
Params
- input: path to the input image, can be a jpg or png
- output: path to the output image, can be a jpg or png. If the file already exists it will be overwritten
- overwrite: specify if the output file should overwrite any existing image with the same name
- color: boolean, if true the output image will be in color otherwhise it will be in black and white
Dependencies
~13MB
~139K SLoC