Convert images to vectorized line drawings for plotters.
- Exports polyline-only svg file with optimized stroke order for plotters;
- Sketchy style powered by Perlin noise;
- Contour-only or hatch-only modes.
Python 2 or 3, PIL/Pillow, numpy, OpenCV (Optional for better performance)
pip install -r requirements.txt
Convert an image to line drawing and export .SVG format:
python linedraw.py -i input.jpg -o output.svg
Command specs:
usage: linedraw.py [-h] [-i [INPUT_PATH]] [-o [OUTPUT_PATH]] [-r [RESOLUTION]] [-b] [-nc] [-nh] [--no-cv] [--hatch-size [HATCH_SIZE]] [--contour-simplify [CONTOUR_SIMPLIFY]] [-v]
[--save-settings]
Convert image to vectorized line drawing for plotters.
options:
-h, --help show this help message and exit
-i [INPUT_PATH], --input [INPUT_PATH]
Input image path
-o [OUTPUT_PATH], --output [OUTPUT_PATH]
Output image path
-r [RESOLUTION], --resolution [RESOLUTION]
Resolution of the output image
-b, --show-bitmap Display bitmap preview.
-nc, --no-contour Don't draw contours.
-nh, --no-hatch Disable hatching.
--no-cv Don't use openCV.
--hatch-size [HATCH_SIZE]
Patch size of hatches. eg. 8, 16, 32
--contour-simplify [CONTOUR_SIMPLIFY]
Level of contour simplification. eg. 1, 2, 3
-v, --visualize Visualize the output using turtle
--save-settings To Save the settings to a json file
Python:
import linedraw
linedraw.argument.resolution = 512 # set arguments
lines = linedraw.sketch("path/to/img.jpg") # return list of polylines, eg.
# [[(x,y),(x,y),(x,y)],[(x,y),(x,y),...],...]
linedraw.visualize(lines) # simulates plotter behavior
# draw the lines in order using turtle graphics.
- Rasterised Output
- GUI for the tool