Sharp Vector Graphics
A library and command line utility to convert bitmaps to SVGs.
- SVG is currently the only static cross-browser way to scale up pixelated graphics with preserving sharpness of the pixels that works across browsers.
- Converting to SVG might be useful in other scenarios, for example when we want to manipulate the image in real time.
- converts gifs to SVGs
- colour! (one path for each colour)
- fancy edge-tracing algorithm to maximally optimise output size
Check out the icons at http://brainshave.com :-) . They're included in
this repo and you can generate them by running
npm test. (Included
only for testing purposes, so please don't use them anywhere.)
sharpvg file.gif > file.svg
Usage (node, simple):
var sharpvg = require("sharpvg") var svg = sharpvg(fs.readFileSync("file.gif"))
Usage (browserified, so should work with AMD and as a global, gif decoding is not available):
var image = canvas.getContext("2d").getImageData(0, 0, 100, 100); var svg = sharpvg(image.data, image.width, image.height);
Usage (node, step by step):
var gif = require("sharpvg/gif") var svg = require("sharpvg/svg") // raw file buffer: var raw = fs.readFileSync("file.gif") // 2-dim array of 1s and 0s: var bitmap = gif(raw) // producing svg is a separate step so we can take the bitmap from // different source var image = svg(bitmap)
- PNG input
- animated gif support
LICENSE: Source code: MIT, see COPYING, icons (gif files in spec directory): only for testing purposes.