dwww Home | Manual pages | Find package

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-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 dou-
       ble 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 com-
       pose an image.  By contrast, PNM is a raster format, which means it de-
       scribes dots that compose an image.  The main practical difference  be-
       tween the two types is that you can scale vector images better.  A vec-
       tor 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" at-
       tribute.  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 ⟨http://www.w3.org/Graphics/SVG/⟩ .

OPTIONS
       In  addition  to  the options common to all programs based on libnetpbm
       (most notably -quiet, see
        Common Options ⟨index.html#commonoptions⟩ ), 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
              ⟨libnetpbm_image.html#colorname⟩ .

       -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 bor-
              dered 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 debug-
              ging).  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  hap-
              pens.

       -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
       ⟨http://autotrace.sourceforge.netHISTORY
       pamtosvg was added to Netpbm in Version 10.33 (March 2006).

       The core of pamtosvg -- the curve tracing logic -- was taken nearly un-
       modified from Martin Weber's Autotrace program.   That  program  dupli-
       cates 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
       ⟨http://autotrace.sourceforge.net⟩  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)

Generated by dwww version 1.15 on Sat Jun 29 01:56:16 CEST 2024.