Contact Us

Design Background

Curriculum Vitae






Quick Jumps:

Overview - Download - Purchase - FAQ - What's New!

NativeSvg + Pyro: A native Object-Pascal SVG manipulation and rendering component
Added: 17May2007
Updated: 21dec2010
Current version: 1.09
Languages: Object Pascal (Delphi 5 - 2010, FreePascal)

Scalable Vector Graphics

From Wikipedia: Scalable Vector Graphics (SVG) is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic (i.e. interactive or animated).

The SVG specification is an open standard that has been under development by the World Wide Web Consortium (W3C) since 1999.

SVG images and their behaviours are defined in XML text files. This means that they can be searched, indexed, scripted and, if required, compressed. Since they are XML files, SVG images can be created and edited with any text editor, but specialized SVG-based drawing programs are also available.

All major modern web browsers except Microsoft Internet Explorer (IE) support and render SVG markup directly. However, the next major version of IE, Internet Explorer 9, will support and render SVG directly.


NativeSvg is an Object Pascal (Delphi) component which aims to make the developer's work easy, where it comes to reading, writing and manipulating SVG. NativeSvg strives to implement as much as the SVG's specification as possible. A demo application with sources (SvgDemo) is available, so you can easily build your own applications with SVG support while looking at the demo.

SVG is entirely based on the XML specification, so NativeSvg also uses Simdesign's NativeXml. When you purchase NativeSvg you also get the latest NativeXml sources as a bonus.


Pyro , or in full: the Pyrographics Engine , is SimDesign's versatile framework which adds support for both vector and raster graphics. Pyro is the basic rendering and editing engine for SVG and PDF support, as well as the basis for many other vector-oriented projects such as CAD.

Pyro is written completely in Object Pascal (Delphi). It is slightly comparable to GDI+, but does not require any DLL or other 3rd party software to run. So Pyro can also be used on other platforms for which Object Pascal can be compiled, and allows you, the developer, to debug and change any specific part.

Pyro supports drawing of a multitude of drawing primitives, such as lines, circles, ellipses, (rounded) rectangles, polylines, polygons and paths. Path drawing includes arcs, quadratic beziers and cubic beziers. Any path or shape can be filled and stroked. Dashed strokes are supported, strokes can have mitered, beveled or rounded joins, strokes can have square, butt or round line caps.

Any fill or stroke can be filled with a solid color, transparent color, or use a so-called "paint server", basically the server that paints the content inbetween the stroked edges. Paint servers can use linear / radial gradients, textures or patterns. Pyro also supports all kinds of fonts, and supports kerning, individual character placement and word/character spacing.

Additionally, extended support for raster formats is available, in the form of SimDesigns raster components (PNG, JPG) and a number of third-party components.

Finally, Pyro supports the concept of "filters", as specified by the SVG specification. Many filter primitives are supported natively.

   Page last changed: 12Apr2011 © Copyright 2007 - 2011 SimDesign