Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/LingDong-/linedraw

Convert images to vectorized line drawings for plotters.
https://github.com/LingDong-/linedraw

artwork convert-images drawing plotter

Last synced: 2 months ago
JSON representation

Convert images to vectorized line drawings for plotters.

Lists

README

        

# linedraw
Convert images to vectorized line drawings for plotters.
![Alt text](./screenshots/1.png?raw=true "")

- Exports polyline-only svg file with optimized stroke order for plotters;
- Sketchy style powered by Perlin noise;
- Contour-only or hatch-only modes.

## Dependencies
Python 2 or 3, PIL/Pillow, numpy, OpenCV (Optional for better performance)

## Usage
Convert an image to line drawing and export .SVG format:

```shell
$ python linedraw.py -i input.jpg -o output.svg
```
Command specs:

```
usage: linedraw.py [-h] [-i [INPUT_PATH]] [-o [OUTPUT_PATH]] [-b] [-nc] [-nh]
[--no_cv] [--hatch_size [HATCH_SIZE]]
[--contour_simplify [CONTOUR_SIMPLIFY]]

Convert image to vectorized line drawing for plotters.

optional arguments:
-h, --help show this help message and exit
-i [INPUT_PATH], --input [INPUT_PATH]
Input path
-o [OUTPUT_PATH], --output [OUTPUT_PATH]
Output path.
-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
```
Python:

```python
import linedraw
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.
```