I think f0dder is right. I tried 2 do this in VB 4 a picture database app by writing the picture to an IStream & it worked great to let COM do the serial/deserialize hard work, but then I noticed the file size!

The technique is used was 2 create a wrapper class for the picture object - you can give it a Load method that that calls yr normal method of loading a picture from file, but yr Load method will also create a char array & copy the actual file into that array.
So you are loading the file into a normal picture object & uncompressing it, but also saving the original compressed file in wateva format it may be.
To deserialize, write the array to a file & read the file.
If you wanna put in the effort to make it faster then you could probably find a way to deserialize the memory char array directly.
But yeah, you have to approach the serialize/deserialize thing differently when dealing with compressed data.