PSD parser (incomplete)

Hi,

I’ve written an incomplete PSD parser in ruby, using the Photoshop 6.0
file format
docs. It can handle paths, some adjustment layer types (curves work at
least, others undertested, sadly), most image descriptors, and
generally split the psd file into a big
hash with descriptive (and hopefully helpful) key names.

The implemented part is roughly pages 8-26 in the PS 6 file format spec
pdf +
curves, levels, hue&saturation. Levels and hue&sat adjustment layers
untested.
There is some value bug in the path parsing part that I forgot to write
down :wink:

Actual layer & channel pixmap data is not decompressed, so implementing
RLE &
ZIP decompression needed for any actual image manipulation.

Tested with a ~60 layer 21MB psd and ~70 layer 4.5MB psd.

Sample output with long strings replaced with their lengths:
http://librend.rubyforge.org/finalsize3.psd.txt

I don’t know if I have time or will to continue the parser, so releasing
the code with the distant hope that someone might find it useful.

http://librend.rubyforge.org/psd_parser.tar.gz