2009-07-21 6 views
4

Comment fournir une implémentation MultiScaleTileSource qui peut générer des images localement (c'est-à-dire sans télécharger les données d'image)?local DeepZoom/MultiScaleTileSource dans Silverlight

Ceci est un suivi de: Suivi sur: stackoverflow.com/questions/432956/silverlight-make-deepzoom-to-load-tiles-from-local-source qui n'a pas reçu de réponse.

Tous les échantillons sur le web se basent sur http://blogs.msdn.com/mikeormond/archive/2008/08/23/multiscaletilesource-demo-source-code.aspx ce qui "hacke" spécifiquement le problème en générant des pixels sur le serveur.

+0

Votre question Says "générer localement des images (sans téléchargement des données d'image)", mais l'autre question que vous allez rejoindre (432956) est spécifiquement sur le téléchargement de TOUTES les données d'image à la fois/à l'avance. Pouvez-vous clarifier exactement ce que vous demandez? Voulez-vous (a) télécharger une seule grande image, créer les tuiles sur le client et les servir 'localement' dans DZ, (b) pré-télécharger CHAQUE tuile pour une image DZ au client et les servir 'localement', (c) laissez DZ fonctionner comme il se doit, en téléchargeant des tuiles en fonction des besoins du serveur? Ou autre chose?? – Conceptdev

+0

CraigD, je suis intéressé à générer toutes les données localement - sans le télécharger à partir d'un/un serveur. – okigan

Répondre

2

MISE À JOUR: Je ne crois pas qu'il soit possible d'effectuer un zoom profond sur le client. MultiScaleTileSource.GetTileLayers requires a collection of URI's, et je ne pense pas que vous ayez un moyen d'intercepter cela sur le client. Toutefois, vous pouvez utiliser le WriteableBitmap de Silverlight 3 pour générer du contenu sur le client. Je ne sais pas exactement ce que vous essayez de faire exacly, mais Jeff Prosise wrote an example which shows zooming into a Mandelbrot Set via Writeable Bitmaps, ce qui montre le concept.

----------- ------------- réponse originale

Créer une coutume MultiScaleTileSource - hériter de MultiScaleTileSource et remplacer méthode GetTileLayers.

échantillons:

+0

Cela ne répond pas à la question. Dans les deux liens ci-dessus, les données d'image sont générées sur le serveur, où est la question de la génération d'image locale. – okigan

+0

Suivi de la deuxième réponse de Jon: Salut Jon, La documentation de DeepZoom est assez pauvre, et bien qu'on puisse dire qu'elle n'est pas supportée, le prototype de GetTileLayers semble assez générique pour permettre d'autres sources. Spécialement, il renvoie une liste d'objets (s) par opposition à une liste d'Uri (s). Par conséquent, l'espoir qu'il existe d'autres façons de nourrir les données d'image à DeepZoom. Tenant donc pour plus d'entrée (peut-être que quelqu'un a recompilé cette partie et identifié quelles autres méthodes sont supportées). – okigan

+0

Eh bien, on dirait qu'à ce moment il n'y a pas de manière (documentée). Fermeture du fil ... – okigan