STANNIX Community


Manual: pamtosvg

Pamtosvg User Manual(1)				   General Commands Manual			     Pamtosvg User Manual(1)

NAME
       pamtosvg - convert a Netpbm image to a SVG (Scalable Vector Graphics) image

SYNOPSIS
       pamtosvg

       [-background-color=colorname]  [-centerline] [-corner-threshold=angle] [-corner-always-threshold=angle] [-corner-sur‐
       round=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.

DESCRIPTION
       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 Auto‐
       trace.

       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  element, which has a "width" attribute and a "height" attribute.	The value of
       that element is composed of  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 con‐
       solidate multiple shades into single colors with pnmquant first.

       For more information on SVG, see the Worldwide Web Consortium's SVG web page .

OPTIONS
       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:

       -background-color=colorname
	      Treat the specified color as the background color and ignore it.

	      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 .

       -centerline
	      Trace an object's centerline.

	      By default, pamtosvg traces an object's outline.

       -corner-always-threshold=angle
	      Consider any angle at a pixel which falls below angle angle (in decimal floating point degrees) as  a  corner,
	      even if it is bordered by other corner pixels.  Default is 60 degrees.

       -corner-surround=integer
	      Consider	the specified number of pixels on either side of a point when determining if that point is a corner.
	      Default is 4.

       -corner-threshold=angle
	      Consider any pixel which forms an angle with its predecessors and successors that is smaller  than  angle	 (in
	      decimal floating point degrees) as a corner.  Default is 100.

       -error-threshold=float
	      Subdivide fitted curves that are offset by a number of pixels exceeding the specified number.  Default is 2.0.

       -filter-iterations=integer
	      Smooth the curve the specified number of times prior to fitting Default is 4.

       -line-reversion-threshold=float
	      When  a spline is closer to a straight line than the specified real number weighted by the square of the curve
	      length, maintain it as a straight line, even if it is a list with curves.

	      Default is .01.

       -line-threshold=float
	      If a spline does not deviate from the straight line defined by its endpoints by more than the specified number
	      of pixels, then treat it as a straight line.

	      Default is 1.

       -log   Create a log of the curve tracing process (suitable for debugging).  Put it in the file named inputfile.log in
	      the current directory, where inputfile is the root of the input file name, or "pamtosvg" if the input is	from
	      Standard Input or a file with a weird name.

       -preserve-width
	      Preserve line width prior to thinning.  Meaningful only with -centerline.

       remove-adjacent-corners
	      Remove adjacent corners.

       -report-progress
	      Report the progress of the tracing to Standard Error as it happens.

       -tangent-surround
	      Consider	the  specified	number of points to either side of a point when computing the tangent at that point.
	      Default is 3.

       -width-weight-factor
	      Weight factor for fitting the linewidth.

APPLICATION NOTES
       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.

SEE ALSO
       pnmquant(1), pbmclean(1), pnm(1), Autotrace

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

       As of June 2006, there was a Sourceforge project	 for it.

DOCUMENT SOURCE
       This manual page was generated by the Netpbm tool 'makeman' from HTML source.  The master documentation is at

	      http://netpbm.sourceforge.net/doc/pamtosvg.html

netpbm documentation					23 April 2006				     Pamtosvg User Manual(1)