linedraw.py
#
vectorise()
#
def vectorise(
image_filename,
resolution=1024,
draw_contours=False, # suggested value: 2
repeat_contours=1, # increase to draw the contours multiple times
draw_hatch=False, # suggested value: 16
repeat_contours=1, # increase to draw the hatching multiple times
):
image_filename
: all images are expected to be found in theimages
directoryresolution
: the number of points that will be processed across the largest dimension of the image - larger is more detailed, but slower - and you’re unlikely to find that the resolution of the plotter itself merits increasing this valuedraw_contours
: find and draw outlines, using the value provided (smaller is more detailed, and slower)repeat_contours
: how many times should the contours be drawn?draw_hatch
: hatch (shade) the processed image, using the value provided (smaller is more detailed, and slower).repeat_contours
: how many times should the hatching be drawn?
At least one of draw_hatch
and draw_contours
must be given otherwise nothing will be drawn.
vectorise
returns a list of lines
, each of which is a list of points. It also creates an SVG file at images/<image_filename>.svg
, to give you an idea of the vectorised version.
image_to_json()
#
image_to_json()
takes the same parameters, but saves the result as a JSON file.
image_to_json("africa.jpg", draw_hatch=16, draw_contours=2)
will save a file at images/africa.jpg.json
(and
also creates an SVG file, at images/africa.jpg.svg
).