локальный DeepZoom / MultiScaleTileSource в Silverlight

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

Это продолжение: Продолжение: 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, который специально" взламывает "проблему, генерируя пиксель на сервере.


person okigan    schedule 21.07.2009    source источник
comment
В вашем вопросе говорится о создании изображений локально (то есть без загрузки данных изображения), но другой вопрос, на который вы указали (432956), конкретно касается загрузки ВСЕХ данных изображения сразу / заранее. Можете ли вы уточнить, о чем вы спрашиваете? Вы хотите (а) загрузить одно большое изображение, создать плитки на клиенте и обслуживать их «локально» в DZ, (б) предварительно загрузить КАЖДУЮ плитку для изображения DZ для клиента и обслуживать их «локально», (c) позволить DZ работать как надо, загружая плитки с сервера по мере необходимости? Или что-то другое??   -  person Conceptdev    schedule 23.07.2009
comment
CraigD, мне интересно генерировать все данные локально - без загрузки их с какого-либо сервера.   -  person okigan    schedule 26.07.2009


Ответы (1)


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

Однако вы можете использовать Silverlight 3 WriteableBitmap для создания контента на клиенте. Я точно не знаю, что вы пытаетесь сделать, но Джефф Просайз написал пример, который показывает увеличение масштаба набора Мандельброта с помощью записываемых растровых изображений, который демонстрирует концепцию.

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

Создайте собственный MultiScaleTileSource - наследуйте от MultiScaleTileSource и переопределите метод GetTileLayers.

Образцы:

person Jon Galloway    schedule 21.07.2009
comment
Это не решает вопрос. В обеих приведенных выше ссылках данные изображения генерируются на сервере, где вопрос касается генерации локального изображения. - person okigan; 23.07.2009
comment
Продолжение второго ответа Джона: Привет, Джон! Документация DeepZoom довольно скудная, и хотя можно было бы сказать, что она не поддерживается, прототип GetTileLayers кажется достаточно универсальным, чтобы разрешить использование других источников. В частности, он возвращает список объектов, а не список URI. Следовательно, есть надежда, что есть другие способы передать данные изображения в DeepZoom. Так что ждем дополнительных вводных (возможно, кто-то перекомпилировал эту часть и определил, какие другие методы поддерживаются). - person okigan; 26.07.2009
comment
Что ж, похоже, что на данный момент нет (задокументированного) способа. Закрытие цепочки ... - person okigan; 19.08.2009