ImageGear for C and C++ on Windows v19.4 - Updated
SVG
User Guide > File Formats and Compressions > File Formats > File Formats Reference > SVG
Full Name SVG (Scalable Vector Graphics format)
Format ID IG_FORMAT_SVG = 77
File Extension(s) *.svg
Data Type Vector Image
Data Encoding XML
Color Profile Support No
Multi-Page Support No
Alpha Channel Support No
ImageGear 3D Image Support No
ImageGear Raster to Vector Format Conversion Support Yes
ImageGear Unicode Text Display Support Yes
ImageGear Platforms Support WIN32, WIN64
To support the SVG format, attach the ImageGear CAD/Vector SVG Component to Core ImageGear. See Attaching Components.

ImageGear Supported Versions:

ImageGear Supported Features:

ImageGear Read Support:

ImageGear Write Support:

ImageGear Filter Control Parameters:

Filter Control Parameter Type Default Value Available Values Description
EXTERN_FILE_PATH AM_TID_LP | AM_TID_CHAR "" Any string up to 262 characters Defines a path where external files (like raster images) should be looked for. A value of "" looks in the same directory as the file being loaded.
WIDTH AT_INT32 512 Any positive value Defines the width of the empty DIB associated with the image after loading. DIB height is calculated using the file's scale factors. See Working with Vector Images.

Comments:

SVG (Scalable Vector Graphics) is a platform for two-dimensional graphics. It has two parts: an XML-based file format and a programming API for graphical applications. SVG allows for three types of graphic objects: vector graphic shapes (e.g., paths consisting of straight lines and curves), raster images, and text. Graphical objects can be grouped, styled, transformed and composited into previously rendered objects. Text can be in any XML namespace suitable to the application, which enhances searchability and accessibility of the SVG graphics. The feature set includes nested transformations, clipping paths, alpha masks, filter effects, template objects and extensibility.

SVG drawings can be dynamic and interactive. The Document Object Model (DOM) for SVG, which includes the full XML DOM, allows for straightforward and efficient vector graphics animation via scripting. A rich set of event handlers such as onmouseover and onclick can be assigned to any SVG graphical object. Because of its compatibility and leveraging of other Web standards, features like scripting can be done on SVG elements and other XML elements from different namespaces simultaneously within the same Web page.

References Used

About SVG - 2d Graphics in XML.- http://www.w3.org/Graphics/SVG/About.html

SVG Elements Supported for Reading

SVG Element*

Supported Attributes

Supported Properties

Imported into ImageGear as:

circle

class

id

style

transform

cx

cy

r

 

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-width

visibility

IG_VECT_ENT_ELLIPSE entity.

clipPath

id

-

Clipping region for the specified entity. Use Vector Entity Functions to access clipping regions.

defs

class

id

style

transform

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_BLOCK entity.

ellipse

class

id

style

transform

cx

cy

rx

ry

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-width

visibility

IG_VECT_ENT_ELLIPSE entity.

font

style

Attributes listed below are only stored and saved back to SVG, but are not used for display:

horiz-origin-x

horiz-origin-y

horiz-adv-x

vert-origin-x

vert-origin-y

vert-adv-y

font-face

See "font-face" element, below.

glyph

See "glyph" element, below.

missing-glyph

See "glyph" element, below.

HIG_VECT_FONT object.

If HIG_VECT_FONT object is created from <font> Svg element, it will be saved as <font> svg tag when writing the image in SVG format. In any other cases HIG_VECT_FONT object will be written as attributes and properties of <text> or <tspan> elements.
font-face

font-family

font-size

font-style

font-weight

units-per-em

Attributes listed below are only stored and saved back to SVG, but are not used for display:

font-stretch

font-variant

  Stored as part of a HIG_VECT_FONT object.

G

class

id

style

transform

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_BLOCK and IG_VECT_ENT_INSERTION entities.

IG_VECT_ENT_INSERTION references IG_VECT_ENT_BLOCK.

glyph

unicode

d

Attributes listed below are only stored and saved back to SVG, but are not used for display:

horiz-adv-x

vert-adv-y

 

Stored as part of a HIG_VECT_FONT object.

Glyphs that correspond to a sequence of two or more Unicode characters are not supported.

image

class

id

style

transform

xlink:href

x

y

width

height

clip-path

display

visibility

IG_VECT_ENT_RASTER entity.

line

class

id

style

transform

x1

y1

x2

y2

clip-path

color

dash-repeat

display

marker-end

marker-start

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-width

visibility

IG_VECT_ENT_EASYLINE entity.

linearGradient

class

id

style

x1

x2

y1

y2

spreadMethod

gradientTransform

gradientUnits

xlink:href

See ‘stop’ element

HIG_VECT_GRADIENT and HIG_VECT_FILLTYPE objects.

HIG_VECT_FILLTYPE references HIG_VECT_GRADIENT.

marker

class

id

style

transform

markerUnits

refX

refY

markerWidth

markerHeight

orient

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_BLOCK and IG_VECT_ENT_INSERTION entities.

IG_VECT_ENT_INSERTION references IG_VECT_ENT_BLOCK.

path

class

id

style

transform

d

clip-path

color

dash-repeat

display

fill

fill-opacity

fill-rule

marker-end

marker-start

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

visibility

IG_VECT_ENT_FIGURE entity.

polygon

class

id

style

transform

points

clip-path

color

dash-repeat

display

fill

fill-opacity

fill-rule

marker-end

marker-start

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

visibility

IG_VECT_ENT_POLYLINE entity.

polyline

class

id

style

transform

points

clip-path

color

dash-repeat

display

fill

fill-opacity

fill-rule

marker-end

marker-start

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

visibility stroke-width

visibility

IG_VECT_ENT_POLYLINE entity.

radialGradient

class

id

style

cx

cy

r

fx

fy

spreadMethod

gradientTransform

gradientUnits

xlink:href

See ‘stop’ element

HIG_VECT_GRADIENT and HIG_VECT_FILLTYPE objects.

HIG_VECT_FILLTYPE references HIG_VECT_GRADIENT.

rect

class

id

style

transform

x

y

width

height

rx

ry

clip-path

color

dash-repeat

display

fill

fill-opacity

fill-rule

marker-end

marker-start

opacity

stroke

stroke-dasharray

stroke-width

visibility

IG_VECT_ENT_POLYLINE entity.

stop

class

style

offset

 

stop-color

stop-opacity

Stops within IG_VECT_ENT_GRADIENT. Use Vector Gradient Functions to access the stops.

Svg

class

id

style

transform

x

y

width

height

viewbox

 

clip-path

color

dash-repeat

display

fill

fill-opacity

fill-rule

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

First-level occurrences are interpreted as HIG_VECT_VIEW object.

Nested occurrences are interpreted as IG_VECT_ENT_BLOCK entity.

switch

class

id

style

transform

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_BLOCK and IG_VECT_ENT_INSERTION entities.

IG_VECT_ENT_INSERTION references IG_VECT_ENT_BLOCK.

symbol

class

id

style

transform

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_BLOCK and IG_VECT_ENT_INSERTION entities.

IG_VECT_ENT_INSERTION references IG_VECT_ENT_BLOCK.

text

 

class

id

style

transform

x

y

dx

dy

rotate

textLength

lengthAdjust

 

clip-path

display

fill

fill-opacity

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_TEXT entity with one or more HIG_VECT_TEXTOBJ objects.

tspan

class

id

style

transform

x

y

dx

dy

rotate

textLength

lengthAdjust

 

clip-path

display

fill

fill-opacity

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_TEXT entity with one or more HIG_VECT_TEXTOBJ objects.

use

class

id

style

transform

clip-path

color

dash-repeat

display

fill

fill-opacity

opacity

stroke

stroke-dasharray

stroke-linecap

stroke-linejoin

stroke-width

text-anchor

visibility

font-family

font-style

font-variant

font-size

font-weight

font-stretch

font-size-adjust

IG_VECT_ENT_BLOCK and IG_VECT_ENT_INSERTION entities.

IG_VECT_ENT_INSERTION references IG_VECT_ENT_BLOCK.

* See SVG format specification for details on SVG elements, attributes, and properties: http://www.w3.org/TR/SVG11/

ImageGear Vector Entities and Objects Supported for Writing to SVG Format

ImageGear Entity or Object

Saved as SVG Element /Property

HIG_VECT_FONT object

<font>
      <font-face>
      <glyph>
      <missing-glyph>

HIG_VECT_FONT object is saved as <font> SVG tag only if it has been created from <font> svg element when loading Svg image. In all other cases HIG_VECT_FONT object is saved as attributes and properties of <text> or <tspan> elements.

IG_VECT_ENT_EASYLINE

<line>

IG_VECT_ENT_BLOCK

<g>

IG_VECT_ENT_INSERTION

<use>

IG_VECT_ENT_POLYLINE

<path> or <polyline> depending on whether the entity contains hidden vertices

IG_VECT_ENT_POLYLINEEX

<path>

IG_VECT_ENT_ELLIPSE

<ellipse>

IG_VECT_ENT_ARC

<path>

IG_VECT_ENT_RASTER

<image>

IG_VECT_ENT_BEZIER_CURVE

<path>

IG_VECT_ENT_NURBS_SURFACE

<path>

IG_VECT_ENT SOLID

<polyline>

IG_VECT_ENT_NURBS_CURVE

<polyline>

IG_VECT_ENT_FIGURE

<path>

IG_VECT_ENT_TEXT

<text> with <tspan>

  

Notes: