3 May 2007 (updated 3 May 2007 at 06:27 UTC)
»
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.