2009-07-21 5 views
4

Как обеспечить реализацию MultiScaleTileSource, которая может генерировать изображения локально (т. Е. Без загрузки данных изображения)?local DeepZoom/MultiScaleTileSource в Silverlight

Это продолжение: Следуйте за: stackoverflow.com/questions/432956/silverlight-make-deepzoom-to-load-tiles-from-local-source, на который не получили ответа.

Все образцы на веб-конце должны основываться на http://blogs.msdn.com/mikeormond/archive/2008/08/23/multiscaletilesource-demo-source-code.aspx, которые специально «взламывают» проблему, генерируя пиксель на сервере.

+0

Ваш вопрос говорит "генерировать изображения локально (т.е. без загрузки данных изображения)", но другой вопрос, который вы связаны с (432956) является в частности, о загрузке ВСЕХ данных изображения сразу/заблаговременно. Можете ли вы точно уточнить, что вы спрашиваете? Вы хотите (a) загрузить одно большое изображение, создать плитки на клиенте и обслуживать их «локально» в DZ, (b) предварительно загружать КАЖДОЙ плитку для изображения DZ клиенту и обслуживать их «локально», (c) пусть DZ работает так, как следует, загружая плитки по мере необходимости с сервера? Или что-то другое?? – Conceptdev

+0

CraigD, мне интересно сгенерировать все данные локально - без его загрузки с/на любой сервер. – okigan

ответ

2

ОБНОВЛЕНИЕ: Я не верю, что это возможно сделать Deep Zoom полностью на клиенте. MultiScaleTileSource.GetTileLayers requires a collection of URI's, и я не думаю, что у вас есть способ перехватить это на клиенте.

Однако вы можете использовать Silverlight 3's WriteableBitmap для создания контента на клиенте. Я точно не знаю, что вы пытаетесь сделать, но Jeff Prosise wrote an example which shows zooming into a Mandelbrot Set via Writeable Bitmaps, в котором показана концепция.

----------- оригинальный ответ -------------

Создание пользовательского MultiScaleTileSource - наследоваться от MultiScaleTileSource и переопределить метод GetTileLayers.

Образцы:

+0

Это не касается вопроса. В обеих вышеперечисленных ссылках данные изображения генерируются на сервере, где речь идет о создании локального изображения. – okigan

+0

Последующий ответ на второй ответ Джона: Hi Jon, Документация DeepZoom довольно бедна, и хотя можно сказать, что она не поддерживается, прототип GetTileLayers кажется достаточно общим для других источников. В частности, он возвращает список объектов, а не список Uri (s). Следовательно, есть надежда, что есть другие способы подачи данных изображения в DeepZoom. Таким образом, держась за большой ввод (возможно, кто-то перекомпилировал эту часть и определил, какие другие методы поддерживаются). – okigan

+0

Ну, похоже, в данный момент нет (задокументированного) пути. Закрытие нитки ... – okigan