Discover the world of image conversion with our JPEG to Printable Image Converter. This C++ command-line tool harnesses the power of advanced algorithms to seamlessly convert your digital images into stunning, paper-ready artwork. Dive into the realm of print perfection and bring your digital creations to life on paper! 🖼️🖨️
Whether you're seeking precision with Dithering and Error Diffusion or looking to master kernels like FLOYD STEINBERG, JARVIS JUDICE NINKE, STUCKI, our converter has you covered. These algorithms are used to convert images such that we can print them on paper media.
Fig 1. (1) original image (2) Dithered image using 16x16 kernel (3) Error diffused image using STUCKI kernel and threshold as 127 (4) Error diffused image using STUCKI kernel, threshold as 127 and using MBVQ (5) Dithered b/w image using 16x16 kernel (6) Error diffused image using STUCKI kernel and threshold as 127
You need to install the following dependancies
sudo apt-get install cmake libjpeg-dev libboost-all-dev
git clone https://github.com/dinesh-GDK/image_print.git
cd image_print
cmake . && make
Only JPEG
images are supported
./image_print [options]
Allowed options:
--help help message
--input arg input image path (only jpg)
--output arg output image path (only jpg)
--op arg operation to perform DITHERING=1 / ERROR_DIFFUSION=2
--bw arg convert image to black and white (default 0)
--size arg dimension of dithering matrix for DITHERING (default 8)
--kernel arg FLOYD_STEINBERG=1 / JARVIS_JUDICE_NINKE=2 / STUCKI=3
(default 2)
--threshold arg threshold for ERROR_DIFFUSION (default 127)
--mbvq arg use MBVQ technique for ERROR_DIFFUSION (default 0)
Sample usage
./image_print --input=<input-image-path> --output=<output-image-path> --op=ERROR_DIFFUSION --kernel=FLOYD_STEINBERG --threshold=127 --mbvq=1 --bw=1
./image_print --input=<input-image-path> --output=<output-image-path> --op=DITHERING --size=16 --bw=1
This project is licensed under the MIT License - see the LICENSE file for details.