Search code examples
c#silverlightdeepzoom

local DeepZoom / MultiScaleTileSource in Silverlight


How to provide a MultiScaleTileSource implementation that can generate images locally (i.e. without downloading of the image data)?

This is a follow up to : Follow up on: stackoverflow.com/questions/432956/silverlight-make-deepzoom-to-load-tiles-from-local-source which did not get answered.

All samples on the web end up to be based on http://blogs.msdn.com/mikeormond/archive/2008/08/23/multiscaletilesource-demo-source-code.aspx which specifically "hacks" the issue by generating pixel on the server.


Solution

  • UPDATE: I don't believe it's possble to do Deep Zoom completely on the client. MultiScaleTileSource.GetTileLayers requires a collection of URI's, and I don't think you have a way to intercept that on the client.

    However, you could use Silverlight 3's WriteableBitmap to generate content on the client. I don't know exactly what you're trying to do exacly, but Jeff Prosise wrote an example which shows zooming into a Mandelbrot Set via Writeable Bitmaps, which shows the concept.

    ----------- original answer -------------

    Create a custom MultiScaleTileSource - inherit from MultiScaleTileSource and override GetTileLayers method.

    Samples: