[-background-color=colorname] [-centerline] [-corner-threshold=angle] [-corner-always-threshold=angle] [-corner-surround=integer] [-tangent-surround=integer] [-error-threshold=float] [-filter-iterations=count] [-line-reversion-threshold=float] [-line-threshold=float] [-width-weight-factor=float] [-preserve-width] [-remove-adjacent-corners] [-log] [-report-progress] [pnmfile]
Minimum unique abbreviation of option is acceptable. You may use double hyphens instead of single hyphen to denote options. You may use white space in place of the equals sign to separate an option name from its value.
This program is part of Netpbm(1).
pamtosvg reads a PNM image as input and produce an SVG (Scalable Vector Graphics) image as output. Thus, it traces curves in the input image and creates a set of splines that represent the image.
SVG is a vector image format, which means it describes curves that compose an image. By contrast, PNM is a raster format, which means it describes dots that compose an image. The main practical difference between the two types is that you can scale vector images better. A vector image also takes a lot less data to describe an image if the image is composed of simple curves.
That means it is really an understatement to say that pamtosvg is an image format converter. It's really an image tracer. Its main job is to trace a raster image and find the lines in it. It then represents its findings in SVG format.
pamtosvg does the same kind of thing that StreamLine, CorelTrace, and Autotrace do. It is in fact derived from Autotrace.
SVG is a gigantic format, capable of amazing things. pamtosvg exploits only a morsel of it. The SVG image produced by pamtosvg consists of a single <svg> element, which has a "width" attribute and a "height" attribute. The value of that element is composed of <path> elements. That's it.
In the SVG output, distances are unitless, with one unit corresponding to one pixel of the input.
So that pamtosvg will find simple curves in the image, you may want to remove speckles from it with pbmclean and consolidate multiple shades into single colors with pnmquant first.
For more information on SVG, see the Worldwide Web Consortium's SVG web page .
In addition to the options common to all programs based on libnetpbm
(most notably -quiet, see
Common Options ), pamtosvg recognizes the following command line options:
If you don't specify this option, pamtosvg does not recognize any background color.
Specify the color (colorname) as described for the argument of the pnm_parsecolor() library routine .
By default, pamtosvg traces an object's outline.
Default is .01.
Default is 1.
A convenient way to view an SVG document is with a web browser. Many understand a file whose name ends in ".svg" to be an SVG image and can render it.
pamtosvg was added to Netpbm in Version 10.33 (March 2006).
The core of pamtosvg -- the curve tracing logic -- was taken nearly unmodified from Martin Weber's Autotrace program. That program duplicates a lot of Netpbm function, so pamtosvg is a much leaner program.
Bryan Henderson created pamtosvg, basically just by adapting Autotrace to Netpbm.
Autotrace was first released in 2000 and updates were released through 2002. A number of people wrote the code in it, but Masatake Yamato and Martin Weber appear to be the principal creators of it.