Showing Photosynth Collections in Silverlight (2-D)
If you haven’t already, check out Photosynth, the latest
release from Livelabs showing off this fantastic technology that stitches
images together in 3-D space and lets you navigate your vacation photos. It's better seen than described in words, so don't hesitate to blow off a few minutes looking at the great Synths that have already come in from all over the world.
Well, the wonderful thing about Photosynth and Deep Zoom is
that we share the same file format. A collection created in Photosynth can be
opened in Deep Zoom and the items in the collection can be arranged to a
developer’s liking.
Click below to see the application that lets you view any
photosynth collection you may have found and liked, but don’t have a chance to
look at because you are using a Mac (like me at home) or because you don’t have
a supported browser.

How does one open a Photosynth collection?
Well, search for your favorite Photosynth, right click the
link and copy it, or copy the URL from the address bar, and paste it into the
viewer. The viewer does the rest to open the collection and lay it out on a 2-D
grid.
Some details on the Photosynth format
All this little application really does is analyze the URL
to a collection and pull out the right pieces to reconstruct the URL to the actual
collection.
Let’s take the following example:
http://photosynth.net/view.aspx?cid=ffa4cce7-d8ec-44f8-9eac-ab28b838cdcb
Is the URL to a photosynth of a collection. The resulting
URL to the collection (according to fiddler) is:
http://mslabs-100.vo.llnwd.net/d4/photosynth/M6/collections/ff/a4/cc/ffa4cce7-d8ec-44f8-9eac-ab28b838cdcb.dzc
Note that Photosynth uses the extension “.dzc” (Deep Zoom
Collection) for collections, and “.dzi” (Deep Zoom Image) for images.
So what do you need to do to get to the collection given the
URL to the Synth? Well, first, you extract the collection GUID (ffa4cce7-d8ec-44f8-9eac-ab28b838cdcb).
Next, you need to construct the path to the collection from
the GUID. The first part can always be the same:
http://mslabs-100.vo.llnwd.net/
Next, there is a “d”, followed by a number. This number can’t
be derived from the GUID, it’s different for every synth. So I need to try
numbers between 2 and 8 to see where the collection is.
The next bit (/photosynth/M6/collections/)
is always the same. The next bit (/ff/a4/cc/) is simply
the first six digits of the GUID. Then add the GUID, “.dzc” and you are done!
Note on layouts
One thing to note is that Photosynth does not put layout information into the collection XML file. This layout information is normally used by Deep Zoom to place images in a collection on screen in the right spots (Deep Zoom Composer for example fills in the layout information).
So if you attempt to open a Photosynth collection without laying the images out yourself, you will be in a world of hurt - the default behavior for deep zoom when layout information is missing is to layout all the images in a collection fitting to the container deep zoom is in. And since that can be hundreds of images, it can be pretty slow.