agentsclimarketplace

Png to svg

Skill rajnandan1/such-skills/skills/png-to-svg

Convert PNG images to smooth, scalable SVG vector files using potrace tracing. Supports multi-color PNGs (logos, icons, illustrations) by extracting dominant colors and tracing each color layer separately, then compositing into a clean SVG. Also handles single-color images and lets users override the fill color. Use this skill whenever the user wants to: convert a PNG to SVG, trace a bitmap, vectorize an image or logo, turn a raster image into vectors, create an SVG from a PNG/JPEG/bitmap, or anything involving bitmap-to-vector conversion. Also trigger when the user mentions "potrace", "image tracing", or asks to make an image scalable.From its SKILL.md

Install
npx -y skills add rajnandan1/such-skills --skill png-to-svg

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.6 KB, as published. Nobody here has run it

PNG to SVG Converter

Convert raster PNG images into smooth, clean SVG vector files. The skill uses ImageMagick for image preprocessing and potrace for bezier curve tracing, producing SVGs with smooth paths that scale to any size.

Prerequisites

Two command-line tools are needed. If either is missing, install them:

brew install imagemagick potrace

How to use

There's a bundled script at scripts/png2svg.sh that handles the full pipeline. Run it directly:

bash "${CLAUDE_SKILL_DIR}/scripts/png2svg.sh" <input.png> [output.svg] [OPTIONS]

Options

FlagDescriptionDefault
--single-colorForce single-color trace instead of multi-coloroff (multi-color)
--color "#hex"Override the fill colorauto-detected
--threshold NGrayscale threshold 0-100 (higher = more detail)50
--smoothness NCurve smoothness 0-1.334 (higher = smoother)1.334

Examples

Simple single-color logo:

bash "${CLAUDE_SKILL_DIR}/scripts/png2svg.sh" logo.png logo.svg --single-color

Multi-color illustration (default):

bash "${CLAUDE_SKILL_DIR}/scripts/png2svg.sh" artwork.png artwork.svg

Override color:

bash "${CLAUDE_SKILL_DIR}/scripts/png2svg.sh" icon.png icon.svg --color "#FF5733"

Adjust for detailed images:

bash "${CLAUDE_SKILL_DIR}/scripts/png2svg.sh" detailed.png --threshold 60 --smoothness 1.0

What the script does

  1. Color extraction — Samples the PNG's dominant colors (up to 8) using ImageMagick's histogram, skipping near-white and near-black (background colors).

  2. Per-color tracing — For each detected color, isolates matching pixels using fuzz matching, converts to a binary bitmap, then traces with potrace using smooth bezier curves.

  3. SVG composition — Combines all traced color layers into a single SVG, with each layer using its original fill color.

  4. Cleanup — Removes the background rectangle that potrace adds (the full-canvas M0 path), and deletes all temporary files.

When things don't look right

The two most impactful parameters to tweak are:

  • Threshold (--threshold): If the SVG is missing detail, increase this (try 60-70). If it's too noisy, decrease it (try 30-40).
  • Smoothness (--smoothness): The default 1.334 gives very smooth curves. Lower values (0.5-1.0) preserve more sharp corners, which is better for pixel art or geometric designs.

For images with transparency (like PNGs with alpha channels), the script handles this automatically — transparent areas become empty space in the SVG.

Limitations

  • Works best with logos, icons, illustrations, and graphics with solid color areas
  • Photographic images will lose detail (this is inherent to tracing — photos are better as embedded raster)
  • Very fine text may not trace cleanly; consider using actual SVG text elements for text
  • JPEG input: rename to .png or convert first with magick input.jpg input.png

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.