A pure-dart implementation of an SVG parser. The end goal of this package is to provide a semi-full featured implementation that is able to run in both the browser and on the server (or command line tooling).
import 'package:svg/svg.path';
void main() {
// Parses an "up-arrow" shape segment.
print(parseSvgPath('M0,15,L15,15L7.5,0z'));
// Outputs:
// [
// SvgPathMoveSegment {x: 0, y: 15, isRelative: false},
// SvgPathLineSegment {x: 15, y: 15, isRelative: false},
// SvgPathLineSegment {x: 7.5, y: 0, isRelative: false},
// SvgPathClose {}
// ]
}
Don't want to ship the SVG parser with your client? You can statically analyze SVG files and generate raw Dart code instead!
svgPathToSource('M0,15,L15,15L7.5,0z')
// Outputs
/*
'const <SvgPathSegment> ['
'const SvgPathMoveSegment(0, 15), '
'const SvgPathLineSegment(15, 15), '
'const SvgPathLineSegment(7.5, 0), '
'const SvgPathClose()'
']'
*/
- Parsing a single SVG path that contains move, line, and close commands.
- Converting a single SVG path to raw Dart (generated) code.