#pixel-art #pixel #svg #graphics #cli #pixelart #strip

app pixel2svg

Based on the original pixel2svg, but rewritten in Rust. Converts pixel art to SVG - pixel by pixel.

3 stable releases

1.1.1 Jun 5, 2024
1.1.0 Jun 2, 2024
1.0.2 Jun 1, 2024

#84 in Images

Download history 407/week @ 2024-05-30 123/week @ 2024-06-06

530 downloads per month

GPL-3.0 license

130 lines

pixel2svg - rewritten in Rust

"pixel2svg converts pixel art to SVG - pixel by pixel." - Original pixel2svg description.

Helps you avoid weird pixel art upscaling artifacts, mantaining the expected crispy clean image. Useful for web icons.

Some extra features were added compared to the original:

  • Stripping unrecommended attributes (according to MDN) used in the original script;
  • Stripping unused XML namespaces (e.g. xmlns:ev & xmlns:xlink);
  • Manually configurable output path;
  • Translucent pixels;
  • Printing results to stardart output;
  • Customizable color formats.


  • clap (& clap-derive);
  • image;
  • svg.


cargo install svg2pix




      --squaresize <SQUARE_SIZE>
          Width and height of vector squares in pixels

          [default: 40]

          If given, overlaps vector squares by 1px

          If given, strips all additional namespaces

          If given, strips unrecommended attributes

          If given, translucent pixels will be included

  -O, --output <OUTPUT_FILEPATH>
          By default, the output filepath will be the input filepath replaced with a "svg" extension. If '-' is given, outputs results to standart output

  -C, --color-format <COLOR_FORMAT>
          Sets the outputted color format

          [default: rgb-function]

          Possible values:
          - rgb-function: Colors are outputted as `rgb()` CSS functions
          - rgb-hex:      Colors are outputted as RRGGBB hex codes

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version


~88K SLoC