Slideback

What is inside a .wp3 file

A .wp3 file is a Photo Story 3 project. Under the name it is a Microsoft Cabinet archive, the same container Windows uses for driver and update packages, and it holds everything the slideshow needs.

I worked this out from real projects saved by Photo Story 3 (version 3.0.1115). Here is what they contain:

FileWhat it is
project.xmlThe slideshow itself: every slide in order with its timing, pan and zoom, transition, caption, narration and music. About 1 KB per slide.
0.jpg, 1.png, 2.jpeg ...Copies of the pictures, renamed to numbers. Usually the full-size originals.
narration0.wav, narration1.wav ...Narration recorded for each slide. In every project I have opened these were uncompressed 16-bit stereo WAV at 44.1 kHz, about 10 MB a minute.
SoundTrack0.mp3 ...Background music, in whatever format it was added (MP3, WMA or WAV), one file per piece.

Compression

The files are compressed with MSZIP, which is the same deflate algorithm zip files use, cut into 32 KB blocks. Each block can point back into the one before it, so a reader has to decode them in order. Photo Story spreads the files over several compressed folders, from 5 to 21 in the projects I tested. The cabinet format also allows LZX and Quantum compression; none of the projects I tested used them.

project.xml

The root element is MSPhotoStoryProject. Each slide is a VisualUnit. One slide, shortened:

<VisualUnit duration="6.823" type="1">
  <Narration path="narration0.wav"/>
  <Image path="0.png" width="614" height="345" ...>
    <Edit>
      <TextOverlay text="Summer at the lake" verticalAlignment="8"
          horizontalAlignment="1" fontReferenceWidth="312" fontReferenceHeight="234">
        <Font faceName="Georgia" height="-21" weight="400" italic="0" color="16777215" .../>
      </TextOverlay>
    </Edit>
    <Motion manual="0" workingImageWidth="614" workingImageHeight="461">
      <Rect upperLeftX="0" upperLeftY="57" width="460" height="345" weight="100"/>
      <Rect upperLeftX="152" upperLeftY="57" width="460" height="345" weight="100"/>
    </Motion>
    <Transition2 type="1" useManualDuration="0" duration="1"/>
  </Image>
</VisualUnit>

What the pieces mean:

  • duration is how many seconds the slide stays up. With narration it usually matches the length of the recording.
  • Motion holds the pan and zoom: the first Rect is where the camera starts and the second is where it ends. The coordinates are pixels in a working image, which is the picture padded out to 4:3 with black bars and then cut down to the crop rectangle if you cropped it. That is why a wide 614 by 345 picture gets a 614 by 461 working image. A Motion2 element repeats the same rectangles as fractions.
  • Transition2 is the transition into the slide: a style number and a length in seconds. Style 1 is the default crossfade and by far the most common: 74 of the 75 slides in my test projects use it.
  • TextOverlay is the caption. The alignment numbers are the ones Windows uses for drawing text: 0, 4 and 8 for top, middle and bottom, and 0, 1 and 2 for left, centre and right. The font is described the Windows way, with a height in pixels against a 312 by 234 reference frame and the colour as a number in blue, green, red order. Line breaks are stored as raw line breaks inside the attribute, which a strict XML reader would turn into spaces.
  • MusicTrack on a slide starts a piece of music there, with its volume. It runs until the next slide that starts music, or to the end.
  • Edit can also carry RotateAndCrop, an Effect number such as black and white, and Correct flags for automatic colour, contrast and red-eye fixes.

What Slideback does with it

The converter unpacks the cabinet in your browser, reads project.xml into a timeline and draws each frame from the original pictures, so the MP4 is as sharp as the photos allow rather than a copy of an old low-resolution export. Nothing is uploaded. If you just want the pictures and sound, the zip download is free.