3 May 2007 frob   » (Journeyer)

C0relDraw VS Visi0
The process of CDR file format reverse engineering seems to be more clear and quick than it was for VSD/VSS.
Possible reasons for that are:
- format of their containers
- LZW implementation in use
- 'object models'
- code for file format research

CDR uses (slightly modified) RIFF with standard LZW. Also there are clearly identifiable pointers to 'document-wise' parts like fills and outlines parameters.

VSD uses OLE with 'customized' LZW version. There are a lot of entities there (I had ever asked native speakers to suggest some good names for different kind of 'peaces'). The relations mostly aren't clear.

A lot of time was wasted to find out LZW options (VSD). cdr_explorer (and therefore sK1 importer) uses zlib functions (CDR).

RIFF leaves some place to guess about chunk content because of meaningful names (<obj >, <DISP>, <IKEY>, <bmp >, <fntd> can you guess what it is?).
In VSD _some_ parts of 'Visio Document Object Model' can be found from the 'type value in the pointer to stream', also one have to map chunk numbers to types.

For vsd/vss I stole some code from libgsf, but my ability to adapt it is quite restricted. And I gave up all attempts to make something useful in C with GObject.
For cdr Igor Novikov made a cdr_explorer, that is really nice and handy.

So there are some details about the formats:
vsd and cdr (WARNING! Coarse (Russian) language. Viewer discretion is advised! =)

For now CDR files (ver.7 to ver. X3) can be opened in sK1. Igor Novikov is going to make two presentations about it at LGM-2

What could be my next target?
Well... there are some things to research in CDR ;-)
And show-stopper is not me (there are no more cdr files prepared to make meaningful conclusions.) Maybe or maybe not we will complete most of this job at LGM-2.

Alexandre Prokoudine suggested that it could be interesting to dig into photoshop related formats.
Jody pointed to PPT.
So I'm encouraging Igor Novikov to extend cdr_explorer with support for OLE.
It will help us to finish with VSD/VSS (and maybe create some kind of viewer
for a time while Ian Redfern implement VSD->..->Dia convertor)
and provide a base for possible treatment of PPT.
I would rather work with PPT because I know who will be responsible for utilization of the collected data =).
And I believe that nobody really need any data about PSD format and related staff.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!