svgtracer
v0.1.2
Published
svgtracer is a package to trace SVG paths into a list of points. It is intended to be used with typescript and is compatible with node.js and the browser.
Maintainers
Readme
Description
svgtracer is a package to trace SVG paths into a list of points. It is intended to be used with typescript and is compatible with node.js and the browser.
Installation
npm install svgtraceror
yarn add svgtracerUsage
import traceSVG from 'svgtracer';
const svg = traceSVG('<file content or data uri>');
svg.forEach((path) => {
path.forEach((point) => {
console.log(point.position.x, point.position.y);
});
});Functions and classes
traceSVG
traceSVG(svg: string, options?: TraceOptions): SVG;Returns an SVG object containing the traced paths and groups in the original hierarchy. | Parameter | Description | |---------------|---------------------------------------------------| | svg | contents of the svg in text form or data uri form | | options? | options for the svg tracer, see below |
TraceOptions
class TraceOptions {
resolution: number;
colors: boolean;
subpaths: boolean;
transform: TransformMatrix;
}| Field | Default value | Description | | ---------- | ----------------- | -------------------------------------------------------------------------------- | | resolution | 1 | resolution of curves, higher is more accurate. | | colors | true | whether to include colors. | | subpaths | true | whether to split paths into subpaths (a new subpath starts with a move command). | | transform | identity | transformation matrix to apply to the svg. |
SVG
class SVG {
public children: (SVGPath | SVGGroup)[];
public getAllPaths(): SVGPath[];
}| Field / Function | Description | | -------------------- | --------------------------------------------------------- | | children | Array containing all direct children of the root element. | | getAllPaths() | Returns an array of all paths in the svg. |
SVGGroup
class SVGGroup {
public children: (SVGPath | SVGGroup)[];
}| Field | Description | | --------- | ----------------------------------------------------- | | children | Array containing all direct children of this element. |
SVGPath
class SVGPath {
public points: Point[];
public boundingBox?: BoundingBox;
public style: PathStyle;
public subpaths: SVGSubpath[];
}| Field | Description | | ----------- | --------------------------------------------------------------------------- | | points | Array containing all points of the path. Empty, if subpaths are enabled. | | boundingBox | Bounding box of the path. undefined if subpaths are enabled. | | style | Style element of the path. | | subpaths | Array containing all subpaths of the path. Empty, if subpaths are disabled. |
SVGSubpath
class SVGSubpath {
public points: Point[];
public boundingBox: BoundingBox;
}| Field | Description | | ----------- | --------------------------------------- | | points | Array containing all points of the path | | boundingBox | Bounding box of the path. |
Point
class Point {
public position: Vector2D;
public normal: Vector2D;
}| Field | Description | | --------- | --------------------------- | | position | Position of the point. | | normal | Normal vector of the point. |
PathStyle
class PathStyle {
public fill?: Color;
public stroke?: Color;
public strokeWidth?: number;
}| Field | Description | | ------------ | ---------------------------------------------------------- | | fill? | Fill color of the path. White if the path is not filled. | | stroke? | Stroke color of the path. White if the path is not filled. | | strokeWidth? | Stroke width of the path. Defaults to 1 if not specified. |
Color
class Color {
public r: number;
public g: number;
public b: number;
public a: number;
}| Field | Description | | --------- | --------------------- | | r | Red channel (0-255) | | g | Green channel (0-255) | | b | Blue channel (0-255) | | a | Alpha channel (0-255) |
