CD_SVG - Scalable Vector Graphics Driver (cdsvg.h)

This driver allows the generation of a SVG file, a modularized language for describing two-dimensional vector and mixed vector/raster graphics in XML. The SVG specification is an open standard that has been under development by the World Wide Web Consortium (W3C) since 1999.

The driver uses the LodePNG module by Lode Vandevenne.


The file is created by calling function cdCreateCanvas(CD_SVG, Data). The Data parameter is a string that must contain the filename and the canvas dimensions, in the following format:

"filename [width_mmxheight_mm] [resolution]" or in C "%s %gx%g %g"

Only the parameter filename is required. The filename must be inside double quotes (") if it has spaces. width_mm and height_mm are provided in millimeters (note the lowercase "x" between them), and their default value in pixels is INT_MAX for both dimensions. Resolution is the number of pixels per millimeter; its default value is "3.78 pixels/mm" (96 DPI). Width, height and resolution are real values.

Any amount of such canvases may exist simultaneously. It is important to note that a call to function cdKillCanvas is required to close the file properly.

IMPORTANT: because the SVG specification states that floating point number must use dots "." for floating point separators, we set the numeric locale to "C" when the canvas is created, and restore it when it is destroyed. But since it uses the global C function setlocale if you use other C functions that are locale dependent while the SVG canvas is being used then be aware that they will be affected.

Behavior of Functions


  • Play: does nothing, returns CD_ERROR.
  • Clear: does nothing.
  • Coordinate System and Clipping

  • UpdateYAxis: the orientation of axis Y is the opposite to its orientation in the CD library.
  • Complex Regions: not supported.
  • Attributes

  • FontDim: is simulated.
  • TextSize: is simulated.
  • WriteMode: does nothing, returns CD_REPLACE.
  • Colors

  • GetColorPlanes: always returns 24.
  • Palette: does nothing.
  • Foreground & Background: accepts the transparency information encoded in the color. (since 5.13)
  • Primitives

  • Pixel: does not exist in SVG, is simulated using a circle with radius=0.1.
  • Floating point primitives are supported.
  • Client Images

  • GetImageRGB: does nothing.
  • Server Images

  • All functions do nothing.
  • Exclusive Attributes