Wednesday, 19 March 2008

DeepZoom "Publisher"

Firstly, a quick note about hosting Silverlight 2.0 on 'locked down' hosting providers (ie. where you can't set the MIME type for the .xap extension to application/x-silverlight-app) and you follow the advice to change the extension to .zip... it doesn't seem to work when your Silverlight 2.0 application uses DeepZoom/MultiScaleImage! I can't explain why, but my DeepZoom test doesn't work (currently; request is in to set the MIME types) even when Tim's test page does (on my server).

Anyway, until my hosting provider fixes the server, here's what this page should look like:

which of course pans/zooms with a little help from Scott Hanselman and the Expression team blog

Pretty easy to do with the DeepZoom Composer, but even easier with a little program that takes an Adobe Acrobat/PDF file and generates everything for you!

You'll need the following:and you will get a complete MultiScaleImage 'set' (info.bin, info.xml and a whole piled of numbered directories). Check Scott H and the Expression team posts on wiring it up.

UPDATE (20-Mar): now that my hosting provider has added the .XAP extension, the demo works. To 'prove' that renaming to .ZIP fails when using MultiScaleImage, this is an identical page with .XAP renamed to .ZIP, both in the object tag and the file itself (obviously).


  1. Cool!

    Do you happen to know the internal format of info.bin?

    I'm trying to allow zooming through one image set into another image set. See and press the "Puget Sound" button. The goal is to use different charts when zooming in to preserve text legibility at low zoom levels.

    So I think I need to merge two completely separate outputs from Composer, and assume this means merging the info.bin files too.

    Is Info.bin just a compiled version of info.xml?


    - Jay (

  2. Hi Jay - no, I'm not sure about the exact contents of info.bin (or items.bin for that matter) but plan to spend some time finding out - out of curiousity, mainly. I hope/presume it's a binary-serialized version of the .xml, but you never know.

    I guess what you want (?) is to overwrite the tiles in the lower level zooms with ones generated from an image with different text over the same 'map', or create additional tile levels? Although it may be possible to add more <level index="x"> elements, perhaps you could instead layer two MultiScaleImage controls and manage sizing/opacity between them as you zoom in/out. Sounds a bit of a hack, I know. I've also wondered how easy it will be to overlay Xaml (eg. TextBlocks) on MultiScaleImage and keep it zoomed/aligned with the underlying image, but with the font size remaining readable...

    Since it's still in beta it might be risky to build something relying on the .bin format anyway.

    p.s. great domain name you got :)

  3. Not directly relevant to MutliScaleImage, but in the same 'problem space'.

    Annotating an Image in a Viewbox (linked from Zoom-transformations for a zoomable information landscape post).

    Certainly this approach is going to be useful for another project of mine (Geoquery)