An Open Source project for converting SVG into VML and GIF and back
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.
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.
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.
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) 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) 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 1.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 provides modularization, Mobile SVG Profiles customizes the language for mobile devices and SVG 1.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).
Last change: 21 July 2007