Skip to content
Converts bitmaps to beautifully pixelated SVGs
JavaScript Shell
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
lib
scripts
spec
.gitignore
.npmignore
COPYING
README.md
cli.js
gif.js
index.js
package.json
split.js
svg.js

README.md

SharpVG

Sharp Vector Graphics

A library and command line utility to convert bitmaps to SVGs.

Why?

  • 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.

Features!

  • converts gifs to SVGs
  • colour! (one path for each colour)
  • fancy edge-tracing algorithm to maximally optimise output size

Examples!

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.)

Usage (CLI):

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)

Planned features:

  • PNG input
  • animated gif support

LICENSE: Source code: MIT, see COPYING, icons (gif files in spec directory): only for testing purposes.

You can’t perform that action at this time.