Skip to topic | Skip to bottom

Progetti.VectorConverterr1.95 - 01 Aug 2007 - 11:26 - AngeloDiIoriotopic end

Start of topic | Skip to actions

Vector Converter

An Open Source project under GPL license, for converting SVG into VML and GIF and back.

Go to the Home Page of VectorConverter on


Table of content

1. A brief description

Six converters were actually implemented. XSLT is used to convert SVG documents into VML. Conversion from VML and SVG into GIF is performed by the PHP graphic library. Additionally, raster images can be translated or rather included into a vector image expressed in SVG or VML.

Raster images

A raster image is a grid of pixels where the color of each pixel is individually defined. Well-known standards like JPEG, GIF and PNG have shown advantages and limits of this approach. Raster images assure high resolution with accurate colors and photographic quality and are widely supported on the Web. On the other hand, they have some evident drawbacks: first of all, they are not scalable (when increasing or reducing their dimension, the quality is compromised); secondly, their internal code is not human-readable and modifiable, so that little changes force users to re-generate the whole image by scratch. Finally, a high-quality raster image has a large byte size, a key factor when transmitting it on slow internet connections.

Vector graphics

On the contrary, vector graphics uses mathematical functions to draw shapes and lines, so that scalability, small dimensions and small footprint are guaranteed. Moreover these images are text-based and easily modifiable whenever vector information is expressed through a human-readable language such as XML. Although vector images seem to be more manageable, sizeable and portable, raster images are today by far the most frequent kind on the Web. This is mostly due to the fact that although standards for raster graphics exist that can be reliably used for publishing on the web, no comparably successful standard exist for vector graphics.

Graphic languages

Actually different vector languages have been proposed in the last years but none of them has really been successful as its raster-oriented cousins. PGML (Precision Graphics Markup Language) [ PGML ] is an XML language proposed by Adobe and IBM on April 1998, based on the imaging model of postscript and PDF. Subsequently, new functionalities have been added towards a complete integration with other web languages and applications. VML (Vector Markup Language) [ VML ] was proposed by Microsoft and Macromedia in May 1998. Similar to HTML as to internal structure and syntax, it relies on CSS for the definition of presentational aspects. VML documents do not actually exist as stand-alone resources, but they have to be coded within an HTML document, through elements and attributes belonging to a given namespace.

The rivalry between PGML and VML has been tackled by the W3C in the 1998, when an initiative started to define a new format partially based on both proposals: SVG [ SVG1.0 ]. SVG strengthens some existing functionalities and offers many additional features such as animations, advanced management of text fragments and so on. With SVG, even accessibility requirements are considered, for the first time in the graphic community: metainformation can be added to the code in order to describe the graphical elements and give alternative descriptions for disabled users. The development of SVG has not stopped yet: SVG 1.1 [ SVG1.1 ] provides modularization, Mobile SVG Profiles customizes the language for mobile devices and SVG 1.2 [ SVG1.2 ] promises to add new interesting functionalities.

Among the others proposals, only VML seems to be a strong antagonist of SVG: being substantially a Microsoft product directly usable with Internet Explorer and MS Office documents, VML is still used in some contexts and, in some cases, more successful than SVG. On the contrary, PGML is now (quite) completely dismissed.

Interoperability between SVG and VML is therefore important for allowing complete support for vector graphics across implementations, operating systems and media types. VML images can be created with little effort by using Microsoft tools (images editors are integrated within MS Word or MS Power Point, too) but require proprietary viewers; similarly SVG, even if published as an public standard, requires specific tools to display images: a bidirectional and automatic conversion would allow users to draw and display images regardless of their original format. Moreover average users can use well-known applications, such as MS Word or MS Power Point, to create SVG images without the need to master complex graphic tools or technologies.

A direct conversion further simplifies and speeds up the re-use of existing material. Using legacy VML images in an SVG-based environment, today, is a manual and difficult task, in particular for inexpert users. On the contrary, more quick and correct results can be achieved by an automatic converter, in charge of performing translations without manual user interventions. Even conversions between raster and vector graphics are worth further investigations. Producing raster from vector images is really useful to make up for the inadequate support of vector images implemented in current applications: VML has the same diffusion problems of any other proprietary language, and even SVG, although standard is not yet widely supported. The inverse conversion, from raster to vector, has evident and undeniable benefits but it is still far from being fully feasible.


This tool allows easy and automatic conversion between SVG and VML and a raster format, GIF and makes good translations between the vector languages despite their substantial different functionalities and expressivity, and can also create, when needed, raster images for unsupported features: actually six conversions are performed, back and forth each of these formats (although the conversion from GIF to SVG or VML is really just an inclusion).

Vector Converter paper

A more accurate Vector Converter description can be found in this paper, wrote by Angelo Di Iorio, Fabio Vitali and Gianluca Zonta.

2. What can Vector Converter translate

At the present moment, March 2007, Vector Converter does not consider some features and does not recognize some properties of VML and of SVG. The following tables specify what the tool can effectively translate at the moment.

SVG -> *

This table describes what we translate starting off an SVG.

SVG *  
G *  
Dimensions and measures * *
PATH * *
Predefined figure (rect,...) * *
A *  


  • ELEMENT : SVG translated element
  • @ATTRIBUTE : SVG translated attribute
  • Objects description : a group of SVG elements
  • * : implemented conversion from SVG

VML -> *

This table describes what we translate starting off a VML.

Object VML->SVG VML->GIF down
FORMULAS and F    
HANDLES and H    
Predefined figure (rect,...) * *
Dimensions * *
@STYLE * *
Transformations (rotate,...) * *


  • ELEMENT : VML translated element
  • @ATTRIBUTE : VML translated attribute
  • Objects description : a group of VML elements
  • * : implemented conversion from VML

3. Conversion samples

The following images are intended to show what Vector Converter can translate.

Example of conversion from VML to SVG


Example of conversion from SVG to VML


Example of conversion from SVG to GIF


4. References

  • [SVG1.1] Ferraiolo J., Jun F., Jackson D. (editors), "Scalable Vector graphics (SVG) 1.1 Specification", W3C Recommendation, 14 January 2003,

-- 07 June 2007

to top

You are here: Progetti > VectorConverter

to top

Copyright © Fabio Vitali 2022 Last update of VectorConverter on 01 Aug 2007 - 11:26 by AngeloDiIorio